マクロどしろうとが、仕事に必要なトコだけ
つまみ食いしたマクロの紹介 \▼・w・▼/。

 
*********

今のトコ Excel
マクロオンリ〜

*********


■ まずは STEP 0 !?
初めてプログラミングらしきことに手を出したとき、構成みたいなのがさっぱりわからなくて、何年もまともに扱えなかった・・。
コマンド集みたいなのは充実してるんだけどね。それらの組み合わせ方がわからない・・。

エクセルマクロは、まず "記録" させてみて、その中身をいじるとラクチン。余分な記述やら間違った記述やら多いみたいだけど、初めての人にはとりかかりやすい気がする。
 
 続き…
2006.02.24 / ● マクロの記録手順 
■ 最下段・最上段・右端・左端の位置取得
No.7
              
リストの最下段の位置を取得する
Selection.End(xlDown).Row
リストの最上段の位置を取得する
Selection.End(xlUp).Row
リストの最右列の位置を取得する
Selection.End(xlToRight).Column
リストの最左列の位置を取得する
Selection.End(xlToLeft).Column
              

リストがあったとして。それを複写したいとき。カラムで範囲指定してコピペさせるとめちゃ時間かかる。 で、ちゃんとリスト範囲を設定してやるために使用。

行=1
列="A"
Cells(行, 列).select
Cells(Selection.End(xlDown).Row, Selection).Select


行:Row、列:column
右と左の場合は "xl" と "方向指定" の間に "To" が入る。
 
 続き…
2006.02.24 / ■ コマンド 
■ バージョン・・・
お久しぶりです・・・。
昨日ちょっとだけショックなことが。
使用しているエクセルはバージョン 2000 なんですが。
ファイルオープンのときの "Application.FileDialog(msoFileDialogOpen)" ってのが使えない模様。
だからメンドーな記述をするはめになったのか・・。
ちなみに今バージョン 2000 で使用しているのは "Application.Dialogs(xlDialogOpen)" ってやつ。これはエクセルファイル開くパターンだけど、テキストファイル開くパターンのときになんかメンドーで・・。
バージョンによって使えない記述ってどこかに掲載されてないかな・・。
新しいバージョンに変えちゃえばいいんだけど、ユーザーが新しいバージョンを使ってる保証はないしね。
 
 
2006.02.24 / ■ 他テキトー 
■ シート名取得と移動
              
サンプル

Sub シート名取得() '■
Dim シート名 As String '■
シート名 = ActiveWorkbook.ActiveSheet.Name '■

Sheets("Test3").Select '■
Range("A2").Copy '■

Worksheets(シート名).Select '■
Range("A3").Select '■
ActiveSheet.Paste '■
End Sub '■

              

!! "シート名 = ActiveWorkbook.ActiveSheet.Name" の "ActiveWorkbook.ActiveSheet.Name" は " "Test2" " を取得する。
だから、
×:"Worksheets("シート名").Select"
○:"Worksheets(シート名).Select"

どこかのシート (例えば、Test2) の A1 セルを選択してマクロ実行
 

 

Test3 のシートが選択され A2 セル内容をコピー
 

Test2 のシートに戻り、A3 セルに貼り付け
 
 
2006.01.05 / ■ マクロ 
■ 選択シート名の取得
No.6
              

選択シート名を取得する
シート名 = ActiveWorkbook.ActiveSheet.Name

              

マクロの過程で、選択していたシートの名前を、何かの名前を参照して変更してしまった場合に、その "何か" が何なのかわからなくて、他のシートに移動した後再度戻ってこようとしても戻れないってときなどに。

移動する前にシート名を取得しておけば、他シートに移動した後に再度戻ってくることができます。

通常、"Dim シート名 As String" と、先に定義しておきます。
ちなみに戻ってきたい場合は、" Worksheets(シート名).Select" 。
 
 
2006.01.05 / ■ コマンド 
■ マクロ途中で終了
              
サンプル

Sub メッセージボックス2() '■
Range("A2").Select '■
MsgBox ("Rado 「ばいばい〜!!」") '■
Exit Sub '■ ←先頭に " ' " をつけると・・
Range("A3").Select '■
End Sub '■

              

まず、"Exit Sub" の前に " ' " をつけて " 'Exit Sub" にし、セル "A1" を選択してから、実行すると・・・

  実行

  OK を押す
セル "A3" が選択されている

次に、"Exit Sub" の前につけた " ' " をはずして "Exit Sub" にし、セル "A1" を選択してから、実行すると・・・

  実行

  OK を押す
セル "A2" が選択されている
 
 
2005.12.28 / ■ マクロ 
■ マクロ途中で終了
No.4


マクロの途中でマクロを終了する

Exit Sub


"End sub" に到達する前に、この記述の箇所で、マクロが終了しちゃいます。

"If 〜then" のときによく使ってます。
「ゴンゾはおデブです。Yes? No? 」
  Yes : パスワード認証。いらっしゃいませ〜。・・・と続いてく。
  No : パスワードが違います。バイバイ。・・・で終了してしまう。
みたいなときに・・・▼o^w^o▼
 
 
2005.12.28 / ■ コマンド 
■ メッセージボックス

サンプル

Sub メッセージボックス()
MsgBox ("ボケ犬3兄弟参上 !!" & Chr(13) & "Gonzo・Nubo・Rado")
End Sub


実行すると・・・
 

メッセージボックスが表示される。
 
 
2005.12.28 / ■ マクロ 
■ メッセージボックス
No.3


メッセージダイアログを表示する

MsgBox ("コメントA" & Chr(13) & "コメントB")


"MsgBox("コメント")" の "コメント" に文章を記述しましょう。
"& Chr(13) &" は改行の印です。

マクロやデータが不十分で、「まだその選択はできませんよ〜」って表示させて、マクロを途中で終了させてしまいたいとき、とかによく使ってます。
 
 
2005.12.28 / ■ コマンド 
■ マクロ実行
No.2


マクロを実行する

Application.Run "タイトル"


"Run "タイトル"" の "タイトル" を起動したいマクロ名に変更しましょう。
実行すると、設定したマクロが呼び出されて実行されます。

これだけだと、利用価値が ??? だけど。
マクロA、マクロB、マクロCを作成したとして、ある場合は、A→B→C と実行したいし、ある場合は、A→C と実行したい場合、などに利用できる。

というわけで、ショートカットキーをあまり使用しなくなったきっかけのもの。
こまごまとマクロを作っていって、最終的にはそれらを順番に呼び起こすマクロを作れば、ショートカットキーは最初だけ必要ってことになるから。
 
 
2005.12.28 / ■ コマンド 
  | < BACK  
 
GMO MadiaHoldings, Inc.