セルの色を調べる RGBを調べる マクロ VBA

セルの色の設定は Colorプロパティ と ColorIndexプロパティ があります。

ColorIndexで1~56の色を指定して色を調べる場合、

簡単な方法としてイミディエイトウィンドウを使用して、ColorIndexプロパティを使用しましょう♪

?Activecell.Interior.colorindex で数値を取得しましょう♪

セルの背景色がなければ -4142 となるかと思います。

黄色なら6

その他の色はどんなものかは実際にセルに表示してみてもいいかもしれませんね♪

Colorプロパティを使用する場合

セルの書式設定→塗りつぶしタブ→その他の色→ユーザー設定→色の設定→ユーザー設定を開くと

下記のような項目が表示されます。

ここからRGB番号を調べて

Activecell.Interior.Color=RGB(102,255,51)

※サンプルです。

 

とすれば背景色を設定できます♪

 

ではでは♪

SUBSTITUTE関数とREPLACE関数の違いは? エクセル関数 シート関数

どちらも置換という関数で似ていますね。

ワークシート関数でどのような違いがあるかご紹介します。ちなみにマクロを使っていてもReplace関数は結構使います。

私自身、この二つの関数を知ってはいたものの、違いがわかるまで何度も何度も検証をしましたw

みなさんに共有するためにまずどう違うのかと一言で表すと、

SUBSTITUTE → 替え玉

→指定した文字を置き換える文字にする

REPLACE → 代替え

文字列の中の何番目から何番目までの文字を置き換える文字にする

 

例えを挙げます

A1セルに ランニングはジョギングではない という文字がある場合

Replaceを使う場合

=REPLACE(A1,7,5,”ウオーキングではない”)

5行目から置換していることに注目

 

Substituteを使う場合

=SUBSTITUTE(A1,”ジョギング”,”ウオーキング”)

置換対象文字列を置換対象文字列にするということに注目

 

Replaceは何文字列以降を指定の文字列に置換

Substituteは対象の文字列を指定の文字列に置換

ってな感じになります。

まずはいじってみて確認してみるのが理解の第一歩かと思います。

 

サンプルを添付します。興味があればご確認ください♪

repace,substitute違い

アクティブシートにグラフを挿入する グラフの挿入 VBA マクロ

グラフの挿入はちょっとやっかいです。

メソッドやプロパティがやたら多いので覚えきれないと思います。

ですので、

オブジェクトやメソッド等を最低限必要なものだけ自分なりに簡潔にまとめてみましたので下記ご参照ください♪

ChartMmap

 

もし覚えたい場合は

Chartオブジェクト

ChartオブジェクトのChartWizardメソッド

 

ChartObjectオブジェクト

ChartObjectオブジェクトのAddメソッド

を覚えればグラフを作る土台はできるのではないでしょうか。

 

グラフを作成するにあたってサンプルコードを作成しました。

コードの冒頭部でグラフがあれば削除するという初期化を設定しています。

If ActiveSheet.ChartObjects.Count <> 0 Then
ActiveSheet.ChartObjects.Delete ‘初期化
End If

シートにグラフがあるか・ないかを判断する場合にも応用できますね♪

サンプルファイルを添付します。

グラフサンプル

 

ご参考にしていただければ♪

セルの座標を取得する VBA マクロ 図形の位置 チャートの位置 ボタン 修正

図形やグラフを挿入する際には座標の指定が必要だったりします。

 

そんな時に座標を調べたいときに使うのが、

 

Top ・ Left プロパティ

です。

Topプロパティはエクセル画面上部から指定位置までの距離

Leftプロパティはエクセル画面左端から指定位置までの距離

 

構文は簡単♪

オブジェクト.Top

オブジェクト.Left

下記サンプルではイミディエイトウィンドウに距離を表示します。


結果はこうなります。

range(“G2”)のTopは18.75

range(“G2”)のLeftは331.5

とのことです♪

全てのシートを選択する VBA マクロ

たくさんのシートを選択したい場合もあるかもしれません。

 

実は簡単なコードで選択できます。

 

ただ、マクロを 使える方であればシートを全選択するということはほとんどないかと思います。

シートの名前を設定する。シートを削除する。シートをコピーする。という処理がとても多くなります。

 

ファイル名を指定してブックを保存する VBA マクロ

今回はブック名を指定して保存するマクロについてご紹介します♪

下記の記事では保存しないで閉じるマクロでしたが、今回は保存する名前を指定して保存するマクロです

変更を保存しないで閉じる VBA マクロ

 

Workbooks.SaveAsメソッド を使用します!

引数がやたら長ったらしいです。。

Filename 保存するファイルの名前を表す文字列を指定します。
FileFormat ファイルを保存するときのファイル形式を指定します。
Password ファイルを保護するためのパスワードを表す15 文字以内の文字列を指定します。
WriteResPassword ファイルの書き込みパスワードを表す文字列を指定します。
ReadOnlyRecommended 読み取り専用で開くことを推奨するメッセージを表示するには、True を指定します。
CreateBackup バックアップ ファイルを作成するには、True を指定します。
AccessMode ブックのアクセス モードを指定します。
ConflictResolution ブックを保存するときの競合の解決方法を指定します。
AddToMru 最近使用したファイルの一覧にブックを追加するにはTrueを指定。既定値はFalseです。
TextCodepage 使用しない。
TextVisualLayout 使用しない。
Local 通常は使用しない。
※csv出力時
日付がm/d/yyyyになってしまう場合に、yyyy/m/dにする場合にはTrueを指定

覚えておくのは

Filename・Fileformat だけで十分じゃないでしょうか。

 

サンプルコードは下記

テスト用という名前のブックが保存されます。

Fileformatの定数については下記

またまた長ったらしいですが、

・xlOpenXMLTemplateMacroEnabled マクロブック

・xlOpenXMLWorkbook エクセルブック

こちらだけ覚えておけば問題ないんじゃないかとw

名前 拡張子 説明
xlAddIn .xls Excel 97-2003 アドイン 18
xlAddIn8 .xls Excel 97-2003 アドイン 18
xlCSV .csv CSV 6
xlCurrentPlatformText .txt テキストファイル -4158
xlExcel8 .xls Excel 97-2003 ブック
(Excel2007以降)
56
xlHtml .htm HTML形式 44
xlOpenDocumentSpreadsheet .ods OpenDocument スプレッドシート 60
xlDIF .dif dif (Data Interchange format) 9
xlOpenXMLAddIn .xlam Excel アドイン 55
xlOpenXMLTemplate .xltx Excel テンプレート 53
xlOpenXMLTemplateMacroEnabled .xltm Excel マクロ有効テンプレート 51
xlOpenXMLWorkbook .xlsx Excel ブック 51
xlOpenXMLWorkbookMacroEnabled .xlsm Excel マクロ有効ブック 52
xlSYLK .slk SYLK (シンボリック リンク) 形式
プリンタの問題を取り除くために使用
(破損した要素を除外できることがある)
2
xlTemplate .xlt Excel 97-2003 テンプレート 17
xlTemplate8 .xlt Excel 97-2003 テンプレート 17
xlTextPrinter .prn PRNファイル
プリンタに渡すデータをファイル化したもの
(印刷時の画面の「ファイルへ出力」と同じ)
36
xlUnicodeText .txt Unicodeテキスト 42
xlWebArchive .mht Webページのアーカイブファイル 45
xlWorkbookDefault .xls or .xlsx
(環境に依存)
通常のエクセル形式 51
xlWorkbookNormal .xls Excel 97-2003 ブック -4143
xlXMLSpreadsheet .xml xml スプレッドシート 46

 

ではでは♪

モジュールの名前を変更するには? VBA マクロ VBEエディター

モジュールの名前を変更したいときがあるかと思います。

 

変更する流れとして

 

VBEを起動

変更したいモジュールを選択

F4キーでプロパティウィンドウを表示

オブジェクト名を変更したい名前に変更

エンターキー

で完了です!割と簡単なステップかと思います。

 

ではでは♪

 

 

セルに関数を入れる 可変セル範囲 SUM関数・Vlookup関数 VBAマクロ

Range.Formula を使用します

 

サンプルコード

C1とD1の結果は同じです。

formulaを使わなくても =”数式” だけで実は関数は入れられます。

 

ただし、行が可変で式の範囲が不明の場合はちょっと複雑になりますが下記のように

FormulaR1C1を使用します。

 

サンプル

Range.formuler1c1.sample

 

サンプルでは見やすいように便宜上、セルB2にSUM関数を挿入していますが、

Range(“B2”).FormulaR1C1 = “=Sum(R[-1]C[-1]:R[” & Lrow & “]C[-1])”

Range(“B”& lrow).FormulaR1C1 = “=Sum(R[-1]C[-1]:R[” & Lrow & “]C[-1])”

上記のように変更すればA列の最終行に答えが表示されます。

range.formulaR1C1は、R1C1の行と列の数値番号が重要になります♪

 

ではでは♪

セルの文字を左・右に寄せる 上側・下側に寄せる マクロ VBA

セルの文字の位置は何気に大事だったりします。

VBAマクロでは下記のように使用します。

Rangeオブジェクトの

「HorizontalAlignment」プロパティで水平位置(左右中央)を、

「VerticalAlignment」プロパティで垂直位置(上下)を設定します。

「HorizontalAlignment」プロパティについて設定する値は下記の通りです。

※デフォルトの値は「xlGeneral」

定数 水平位置
xlGeneral 標準
xlLeft 左詰め
xlCenter 中央揃え
xlRight 右詰め
xlFill 繰り返し
xlJustify 両端揃え
xlCenterAcrossSelection 選択範囲内で中央
xlDistributed 均等割り付け

 

サンプルコード

均等割り付け・選択範囲内で中央は何だか使わなそうなので省きましたw

xlFil は面白いですね。使わないでしょうがw

 

「VerticalAlignment」プロパティについて設定する値は下記の通りです。

サンプルコード

 

ではでは♪