健康情報 ⇒ どこへ向かって・・・ ⇒ VBAトップ ⇒ マクロを使う
Microsoft Excelには、マクロという機能があります。
一連の作業を記憶させて、繰り返し行うときに便利なマクロ機能ですが、内部ではVBAで記録されています。
記録開始~終了までの操作を、VBAで記述するとしたらどのように書くのか、それが分かるので、大抵のことは分かるようになるのではないでしょうか。
■マクロの例■
新規にExcelを開いて、ツールバーのツール(T)→マクロ(M)→新しいマクロの記録(R)→開いたダイアログボックスのOKボタンを押す。
そのまま「OK」
画面に上記のボックスが現れます。
すでにマクロ記録は始まっており、青い■を押すとマクロ終了
とりあえず、元々カーソルがA1にあったので、そのまま「abc」と入力してEnter
B2にカーソルが自動的に移ったので、次は「123」と入力してEnter
最後はC1で「=1+1」と入力してEnter
ここで■を押して終了です。
たった今記録されたマクロ(VBA)を見てみます。
ツール→マクロ→Visual Basic Editor
Visual Basic for Applicaiton
赤枠の部分が今回記録されたマクロです。(クリックで拡大)
Sub Macro1()
~
End Sub
までが一連のプロシージャ(プログラム単位)。Subはサブプロシージャの「サブ」。
Sub Macro1() の「Macro1」の部分は、
ここで設定したマクロ名。
マクロ名はVisual Basicで既に予約されている言葉でなければ何でも(漢字でも)良いですが、後々のことを考えてとりあえずアルファベットでわかりやすいものを。
生成されたコードを見ていきます。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2009/8/4 ユーザー名 : Masaharu Yamamoto
'
'
ActiveCell.FormulaR1C1 = "abc"
Range("B1").Select
ActiveCell.FormulaR1C1 = "123"
Range("C1").Select
ActiveCell.FormulaR1C1 = "=1+1"
Range("D1").Select
End Sub
「’」アポストロフィーから始まる部分はコメントで、実行されない部分です。
ActiveCell.FormulaR1C1 = "abc" というのは、最初にカーソルがあった場所(この場合はA1)に、「abc」を書きなさいという命令。
「"」で囲まれたabcは文字列として扱われています。
次に、Range("B1").Select というのは、B1にカーソルを合わせる命令。
実際の操作ではEnterを押しただけで勝手にB1に移りましたが、内部的にはB1が選択されたようになるのでしょう。
ActiveCell.FormulaR1C1 = "123" は、現在カーソルがあるB1に「123」を書くというもの
以下、同じことの繰り返しです。
この機能はもともと、繰り返し動作を記憶させるための機能だと思いますが、罫線や色などを設定する場合など、自前でプログラムを組むには面倒な場合にもマクロに記録することによりそれを再利用することができて便利です。
今回の場合、マクロを再度実行してもB1に「123」、C1に「=1+1」が適用されます。
最初の「abc」だけは、マクロ実行直前にあったカーソルの場所に適用されます。
使い物にならないマクロです。
プログラムでそのようになっているので仕方ないですが、これを手直ししてやると、もう少し使いやすいマクロになるかもしれません。
月~土曜日(10:00am~5:00pm) 日祝定休日
・ 当サイトにて随時(24時間)受付しております。
・ お電話、ファックス、メールでのご注文も随時受付しております。
・ 午後3時までのご注文分につきましては即日発送いたします。
※日曜、祝日のご注文分につきましては翌営業日発送となります。
なお、在庫の状況によって発送が遅れる場合もございますのでご了承願います。
~当サイトからのご注文~
※ 取り扱い商品一覧画面の画像をクリックすることにより各商品の詳しい説明画面に移ります。
~配達日及び配達時間帯のご指定~
・お届けの日及びお届け時間帯につきましては、ご都合の良い日時をお選びいただけます。
[午前中] [14~16時] [16~18時] [18~20時] [19~21時]
~配送料~
・1回のお買い上げ金額が5,000円(税込み)以上の場合には、配送料は日本全国無料とさせていただきます。
・1回のお買い上げ金額が5,000円(税込み)に満たない場合には、配送料650円(税込み)をご負担願います。(一部例外もございます。)
~代金引換手数料~
・代金引換手数料につきましては、全額当方で負担させていただきます。
~代金引換のお客様~
・現金、クレジットカード、デビットカードのいずれかでのお支払いとなります。
![]()
~クレジットカード決済サービス~
<直接決済は終了しました>
![]()
・お客様登録画面(ご希望商品選択後)にて簡単決済
![]()
~銀行振込のお客様~
・お振込確認後直ちに発送いたします。(お振込手数料はご負担願います)
お振込先:PayPay銀行 (0033) ビジネス営業部 (005)
(普通) 1 5 1 8 4 1 7 ヤマモトケンコウドウヤマモトマサハル