Excel(エクセル)の操作が楽になる方法と便利な使い方を紹介しています。


menu

Excel(エクセル)が楽で便利になる方法

ExcelでVBA(マクロ)のプログラムを入力する画面を出す方法!実行もできますよ

[ この記事の内容は Excel2013 でも使えます ]

 
Excelはセル関数を使うことで、簡単に合計値の計算やカウントができます。
 
SUM関数やCOUNTA関数などを一度は使ったことがあるのではないでしょうか?
 
 
この「セル関数」は簡単で便利ですが、少し複雑なことをしたくなると、逆に難しくなってしまうことがあります。
 
1つのセルに書ける関数は1行なので、見づらくなりますし。
 

スポンサーリンク

VBAはとても便利!

そんな時、VBA(マクロ)でプログラムを書くと、とてもシンプルで簡単になります。
 
プログラムと言うと「なんか難しそう。。。」と思われるかも知れませんが、プログラムにも難しいプログラムと簡単なプログラムがあります。
 
 
ちょっとしたことをしたいのであれば、簡単なプログラムでできるのです。
 
この記事では、プログラムを入力する画面を表示して、簡単なプログラムを実行する方法を紹介します。
 

スポンサーリンク

方法です

  1. 何かのシートが表示されている状態で「alt+F11キー」を押す。
    「Microsoft Visual Basic for Applications」ウィンドウが表示されます。
    いわゆるVBAですね。 
     
  2. 左側のツリーでシート名のところをダブルクリックする。
    右側のエリアが白くなり、文字が入力できるようになります。
    今回はシート名が「Sheet1」でしたので、その部分をダブルクリックしました。 
     
  3. 右の白いエリアにVBAのプログラム内容を入力していく。
    とりあえず、「メッセージを表示するプログラム」を作ってみましょう。
    以下の通りに入力します。
    Function test1()
        MsgBox "VBAで表示したメッセージです!"
    End Function
    
     
    空白を入力する時は、全角空白ではなく、半角空白を入力してくださいね。
    全角空白ではエラーが出てしまいますので。  
    簡単に説明すると、「Function から End Function で囲まれた部分」が一つのプログラム、「test1」はこのプログラムの名前、「MsgBox」は、”(ダブルクォーテーション)で囲まれた文字を表示する関数、になります。  
  4. F5キーを押すとVBAが実行される。
    ここで1つ気を付けることがあります! 
    文字を入力するカーソルが「入力したプログラムのどこか」にある必要がありますよ。
    今回の場合、「MsgBox~」の文字がある2行目にカーソルを置いた状態でF5キーを押します。 
    メッセージが表示されました! 
    OKボタンをクリックすると、VBAが終了します。
 

保存しておきましょう

ついでに、作成したVBAプログラムを保存しておきましょう。
 
  1. 「ctrl+sキー」かメニューバーの「ファイル – ○○の上書き保存」を選択する。
     
  2. ファイル名を適当に入力して保存する。
    Excel2013などの場合、「次の機能はマクロなしのブックに保存できません」というメッセージが表示されます。
    そんな時は、ファイルの種類で「Excel マクロ有効ブック(*.xlsm)」を選択しましょう。 
 これで保存も完了です!
 
 

まとめ

いかがでしたでしょうか?
 
今回の記事で作ったプログラムは3行だけですが、これも立派なプログラムです。
 
要は、自分がやりたいことができれば良いのです。
 
このカテゴリでは、「Excelでこれだけは覚えておきたい!」というVBA(マクロ)を紹介して行きたいと思います。
 

スポンサーリンク

コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

だーしゅ
IT関係のお仕事してます。
Excel大好き。

[当ブログについて]

最近のコメント

  • kongaragatta { だーしゅさん、ご返事ありがとうございます。 まずは、だーしゅさん案で自分なりにできるかどうかトライしてみます。 } – 7月 03, 6:35 AM
  • だーしゅ { 言葉が良く無かったですね。 「O列がFOR文の最初の位置になる」のような意味でした。 実現するにはいろんな方法があると思います。ご参考まで。 } – 6月 29, 5:37 PM
  • kongaragatta { だーしゅさん、案をありがとうございます。 なるほど!月数を取得するやり方は考えていませんでした。やはり自分だとスキルに限界があるのでどうも柔軟に考えにくいですね。 ひとつ質問ですが、「O列を起点とし、年月を固定的に設定」の”固定的に設定”とはどのように設定するということでしょうか? } – 6月 29, 8:04 AM
  • だーしゅ { kongaragattaさん、コメントありがとうございます。 いろんな方法があると思いますが、思いついた案を書いておきますね。 ・DATEDIF関数で開始年月日と終了年月日の月数を取得 ・O列を起点とし、年月を固定的に設定 ・FOR文で「月数」の数分、セルを右方向に移動 →開始日と同じ年月の場合、●を表示 →IF文で一つ目と判断した場合、〇を表示 →3ヵ月単位はMOD関数で判定 いろいろお試しくださいね。 } – 6月 28, 4:59 PM
  • kongaragatta { だーしゅさん、こんにちは 現在、手作業でExcel作表しているものを少しでも自動化したいと考えています。但し、VBAやマクロは初心者のため、だーしゅさんに是非アドバイスやお力添えをいただければと思います。 L列:開始年月日(原則、当該月の1日)、M列:終了年月日(原則、開始年月日より2年後の月末)、O列~:L列の開始年度及び1~12月の各列があります。L及びM列は、更新されます。 全体件数としては、250件程度。 L列の開始月をキーにO列以降の3か月ごとに黒丸の記号を入力したい。但し、初回の月は、白丸の記号。たとえば、開始年月日が2018/6/1ならばO列には2018年度の6月列に白丸の記号がつき、9月列及び12月列、翌年の2019年度3月に黒丸記号のように、それがM列の終了年月日まで表示したい。 何か良い案があったらご教示ください。よろしくお願いします。 } – 6月 28, 6:11 AM
  • MIZUMIZU { だーしゅさん ご連絡ありがとうございます。こちらで試してみます。また解らないときはご連絡いたします。お手数をお掛けいたします。 } – 6月 04, 2:23 AM