【Microsoft Excel】マクロ構文
MSGBOX("TEST")
"TEST"と表示(JSのalertみたいなかんじ)
デバッグ用の状況表示によく使う。
あとは終わったかどうかわからないマクロの終了を告げるため等。
ワークシートセル内ループ処理
①Dim wk_idx As Integer
②Set WS = Thisworkbook.worksheets("Sheet1")
③wk_idx = 1
④Do While WS.cells(wk_idx , 1).value <> ""
⑤ ' 処理を記述
⑥ wk_idx = wk_idx + 1
⑦Loop
シート内セルの簡易ループ走査。 For使うやり方とかあるけど、 実際のところ大体こんなもんで事足りる
①:走査用の変数(行番号を指定する用)を定義
②:ワークシートオブジェクトを取得
worksheetsの引数にはシート名を指定する
この例では「Sheet1」
③:走査用変数の初期化。
1行目から始めるのでwk_idx = 1
④:前判定whileの開始。
脱出条件は”A列セル内の値が空文字(空白)だったら”
逆に言うと空文字が見つからない限り無限ループする
⑤:なんか処理を書く
別シートへの転記とか、ファイルへの書き出しとかだろう。
⑥:走査用変数のカウントアップ
これ忘れるとA1セルから先に進まないので無限ループになる
(個人的によく忘れるので、そうするとEXCEL皆殺しする羽目に陥る)
⑦:Loopおわり
簡易ファイル出力
①Dim ff As Integer
②Dim fn As String
③ff = FreeFile
④fn = "D:\work\test.txt"
⑤Open fn For Output As #ff
⑥Write #ff , "Test"
⑦Close #ff
ファイル出力の簡易例。
①:出力ファイル番号受け取り用変数を定義
②:出力ファイル名設定用変数定義
③:出力ファイル番号設定
④:出力ファイルパス(絶対パス)設定
この例ではD:\work\test.txtに書き出す。
⑤:出力ファイルを書き込みモード(Write)で開く
ちなみに追記モードはFor Outputの部分をFor Appendにする
⑥:"Test"と書き出す
ちなみにWriteだと書き込む文字列がダブクォ(")で囲われて出力される
Print #ff , "Test"だとダブクォはつかない。
⑦:ファイルを閉じる