記事キャッチ画像  (04) コードの説明は後にして、VBAで「カラーチャート」を作ろう! 

 まずは VBA 動作確認で、 Cells オブジェクトと Range オブジェクトを操作する 

 For 〜 Next 制御文でループ(繰り返し)処理を実行する 
  「広告」  
 

 (04) コードの説明は後にして、VBAで「カラーチャート」を作ろう! 

Excel メニューバーの [ヘルプ] - [更新プログラムのチェック] にて、適用されていないアップデートがあれば行ってください。 

Excel 2016 for Mac 環境での説明となりますので、 Mac版 Excel 2011 では( VBA が利用できますが )同じ結果にならない場合があるかもしれません。

現状、 VBAコード 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。

 まずは VBA 動作確認で、 Cells オブジェクトと Range オブジェクトを操作する 

23
Excel でブックを新規作成後、「 Excel マクロ有効ブック ( .xlsm ) 」形式で任意の「名前を付けて保存」する。
マクロ記録が失敗する場合があるため、一度 Excel を終了し、再度開き直す。
32

マクロの記録」をクリック。
59
マクロの保存先を「作業中のブック」にして、 [OK] ボタンにて記録を開始。
「説明: 」を入力すると 対応 Sub プロシージャ の先頭コメントに反映されますが、VBE ウィンドウ内で日本語変換を行うと Excel が異常終了する場合が多いため「無変換の英数字」のみで記述します。
02
「A1」セルをマウス(タッチパッド)にて選択後、「記録終了」ボタンにて記録を終了。
[ alt ] + [ F11 ] にて、 VBE ウィンドウを表示。( [ option ] + [ F11 ] )
27

Sub Macro1()
    Range("A1").Select
    Cells(1, 1).Interior.Color = RGB(255, 0, 0)
    Range("A1").Select
End Sub

(テキスト貼り付けを利用して)上記のとおり入力します。
全て小文字で入力しても、 VBA キーワードは 勝手に先頭が大文字に変換されます。(改行後)
イミディエイトウィンドウ内で「 call Macro1() 」と入力後 [return] キーを押す方法でも Sub プロシージャを実行できます。
22
一文字でも誤入力すると上記のようなエラーダイアログ画面が表示されますので、 [ 中止 ] ボタンをクリック。
コード修正後に「 call Macro1() 」にて再度実行し、「A1」セルが赤色で塗りつぶしされるか確認します。

 For 〜 Next 制御文でループ(繰り返し)処理を実行する  

以下のとおり「VBAコード」を間違いなく入力するか、ブラウザ画面からコピーして貼付けすると便利です。
緑色の行はコメントのため、入力しなくても結果は変わりません。

なぜか纏めて実行するとエラーとなり途中で止まってしまうので、3つの Sub プロシージャに分割しました。
まだまだ、Mac版の VBA環境には問題がありそうです。
それぞれ、イミディエイトウィンドウ内で call コマンドで実行が可能です。

なお、残り2つの「マクロ記録」を行う必要はなく、 Macro1() プロシージャの Sub 〜 End Sub までの行をコピー後に貼り付けして、修正します。
Macro1() プロシージャの動作確認(A・B列に「赤」系のカラーチャートを表示)を行った後にコピーすると良いでしょう。


Sub Macro1()
'
' Macro1 Macro
' ColorChart1 (Red)

    Dim i As Integer
    Dim j As Integer
    j = 0

    For i = 0 To 255 Step 5
        j = j + 1
        Cells(j, 1).Interior.Color = RGB(255, 0, i)
        Cells(j, 1).Value = "255, 0, " & i
        Cells(j, 2).Interior.Color = RGB(255, i, 0)
        Cells(j, 2).Value = "255, " & i & ", 0"
    Next i

    Range("A1").Select
End Sub

Sub Macro2()
'
' Macro2 Macro
' ColorChart2 (Green)

    Dim i As Integer
    Dim j As Integer
    j = 0

    For i = 0 To 255 Step 5
        j = j + 1
        Cells(j, 3).Interior.Color = RGB(0, 255, i)
        Cells(j, 3).Value = "0, 255, " & i
        Cells(j, 4).Interior.Color = RGB(i, 255, 0)
        Cells(j, 4).Value = i & ", 255, 0"
    Next i

    Range("A1").Select
End Sub

Sub Macro3()
'
' Macro3 Macro
' ColorChart3 (Blue)

    Dim i As Integer
    Dim j As Integer
    j = 0

    For i = 0 To 255 Step 5
        j = j + 1
        Cells(j, 5).Interior.Color = RGB(0, i, 255)
        Cells(j, 5).Value = "0, " & i & ", 255"
        Cells(j, 6).Interior.Color = RGB(i, 0, 255)
        Cells(j, 6).Value = i & ", 0, 255"
    Next i

    Range("A1").Select
End Sub

07

53

05


VBAコードの説明は明日行ないますので、間違いなく入力して「A 〜 Fの6列・1 〜 52行」のカラーグラデーションが表示されるまで頑張ってください。


お疲れ様でした!
[command] + [Q] にてExcel を終了時、「作業中のブック」を保存するか確認のダイアログ画面が表示されるため 「保存」しましょう。


現状、 VBAコード 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。

  「広告」  
  

最後まで読んでいただき、ありがとうございます。
ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル
 

  「広告」