2020年11月26日木曜日

[VBA]複数のセルオブジェクトを1つのセルオブジェクトに統合する。

[はじめに]
・あまり知られていないかもしれませんが、
 複数のセルオブジェクトを、1つのセルオブジェクトに統合することができます。
 ※Union関数を使用。

 統合後のセルに対して、
 プロパティやメソッドにアクセスすると、
 統合前のセルすべてに対して、アクセスすることと同じ意味になります。
 複数のセルオブジェクトをまとめて処理したい場合に、便利です。
 ※[注意]セルの結合ではありません。

 以下は、
 「A1」、「B2:D5」、「D3,D5」の複数のセル領域を統合して、
 「Hello」の文字列を設定する例です。
  備忘録としてサンプルソースを掲載します。

[ソース]
Private Sub UnionSample()

    Dim cellArray() As Variant
    Dim cellUnion As Range
    Dim cell As Variant
    
    '① 統合前のセルを定義
    cellArray = Array(Range("A1"), Range("B2:C5"), Range("D3:F5"))
    
    '② ①で定義したセルを
    '  1つのセルオブジェクトに統合する。
    For Each cell In cellArray
        If cellUnion Is Nothing Then
            '初回のみセルを設定
            Set cellUnion = cell
        Else
            '2回目以降は、セルを統合する。
            Set cellUnion = Union(cellUnion, cell)
        End If
    
    Next
    
    '③ 統合後のセルに値を設定。
    cellUnion.Value = "Hello"

End Sub
[VBA]複数のセルオブジェクトを1つのセルオブジェクトに統合する。

2020年11月25日水曜日

[VBA]カラーの定数一覧

[はじめに]
・VBAで、
 色の定数を知りたいことがよくあるので、
 備忘録として掲載します。

カラーの定数一覧
ColorConstants定数
カラー例ColorConstants定数RGBカラー値
(R+G×256+B×2562)
黒■vbBlack0000
青■vbBlue0025516711680
シアン■vbCyan025525516776960
緑■vbGreen0255065280
マゼンタ■vbMagenta255025516711935
赤■vbRed25500255
白■vbWhite25525525516777215
黄■vbYellow255255065535


XlRgbColor定数
カラー例XlRgbColor定数RGBカラー値
(R+G×256+B×2562)
黒■rgbBlack0000
ディムグレー■rgbDimGray、rgbDimGrey1051051056908265
灰色■rgbGray、rgbGrey1281281288421504
濃い灰色■rgbDarkGray、rgbDarkGrey16916916911119017
銀色■rgbSilver19219219212632256
薄い灰色■rgbLightGray、rgbLightGrey21121121113882323
ゲーンズボロ■rgbGainsboro22022022014474460
ホワイトスモーク■rgbWhiteSmoke24524524516119285
白■rgbWhite25525525516777215
スノー■rgbSnow25525025016448255
ローズブラウン■rgbRosyBrown1881431439408444
薄いさんご■rgbLightCoral2401281288421616
インディアンレッド■rgbIndianRed20592926053069
茶■rgbBrown16542422763429
れんが色■rgbFireBrick17834342237106
栗色■rgbMaroon12800128
濃い赤■rgbDarkRed13900139
赤■rgbRed25500255
ミスティローズ■rgbMistyRose25522822514804223
サーモンピンク■rgbSalmon2501281147504122
トマト■rgbTomato25599714678655
濃いサーモンピンク■rgbDarkSalmon2331501228034025
さんご■rgbCoral255127805275647
オレンジレッド■rgbOrangeRed25569017919
薄いサーモンピンク■rgbLightSalmon2551601228036607
シェンナ■rgbSienna16082452970272
シーシェル■rgbSeashell25524523815660543
ピーチパフ■rgbPeachPuff25521818512180223
サンディブラウン■rgbSandyBrown244164966333684
リネン■rgbLinen25024023015134970
ペルー■rgbPeru205133634163021
ビスク■rgbBisque25522819612903679
濃いオレンジ■rgbDarkOrange255140036095
アンティークホワイト■rgbAntiqueWhite25023521514150650
タン■rgbTan2101801409221330
バーリーウッド■rgbBurlyWood2221841358894686
ブランシュアーモンド■rgbBlanchedAlmond25523520513495295
ナバホホワイト■rgbNavajoWhite25522217311394815
パパイヤホイップ■rgbPapayaWhip25523921314020607
モカシン■rgbMoccasin25522818111920639
オレンジ■rgbOrange255165042495
フローラルホワイト■rgbFloralWhite25525024015792895
オールドレース■rgbOldLace25324523015136253
小麦■rgbWheat24522217911788021
ゴールデンロッド■rgbGoldenrod218165322139610
濃いゴールデンロッド■rgbDarkGoldenrod18413411755384
コーンシルク■rgbCornsilk25524822014481663
ゴールド■rgbGold255215055295
レモンシフォン■rgbLemonChiffon25525020513499135
カーキ■rgbKhaki2402301409234160
濃いカーキ■rgbDarkKhaki1891831077059389
ペールゴールデンロッド■rgbPaleGoldenrod2382321077071982
アイボリー■rgbIvory25525524015794175
ベージュ■rgbBeige24524522014480885
明るい黄■rgbLightYellow25525522414745599
薄いゴールデンロッドイエロー■rgbLightGoldenrodYellow25025021013826810
オリーブ■rgbOlive128128032896
黄■rgbYellow255255065535
オリーブドラブ■rgbOliveDrab107142352330219
イエローグリーン■rgbYellowGreen154205503329434
濃いオリーブグリーン■rgbDarkOliveGreen85107473107669
グリーンイエロー■rgbGreenYellow173255473145645
若草色■rgbLawnGreen124252064636
シャルトルーズ■rgbChartreuse127255065407
ハニーデュー■rgbHoneydew24025524015794160
濃いシーグリーン■rgbDarkSeaGreen1431881439419919
明るい緑■rgbLightGreen1442381449498256
ペールグリーン■rgbPaleGreen15225115210025880
フォレストグリーン■rgbForestGreen34139342263842
ライムグリーン■rgbLimeGreen50205503329330
濃い緑■rgbDarkGreen0100025600
緑■rgbGreen0128032768
黄緑■rgbLime0255065280
淡いアクアマリン■rgbMediumAquamarine10225517011206502
淡いシーグリーン■rgbMediumSeaGreen601791137451452
シーグリーン■rgbSeaGreen46139875737262
ミントクリーム■rgbMintCream24525525016449525
スプリンググリーン■rgbSpringGreen02551278388352
淡いスプリンググリーン■rgbMediumSpringGreen025015410156544
アクアマリン■rgbAquamarine12725521213959039
ターコイズ■rgbTurquoise6422420813688896
薄いシーグリーン■rgbLightSeaGreen3217817011186720
淡いターコイズ■rgbMediumTurquoise7220920413422920
空色■rgbAzure24025525516777200
ペールターコイズ■rgbPaleTurquoise17523823815658671
濃いスレートグレー■rgbDarkSlateGray4779795197615
濃いスレートグレー■rgbDarkSlateGrey4779795197615
青緑■rgbTeal01281288421376
濃いシアン■rgbDarkCyan01391399145088
明るい水色■rgbLightCyan01391399145088
濃いターコイズ■rgbDarkTurquoise020620913749760
水色■rgbAqua025525516776960
カデットブルー■rgbCadetBlue9515816010526303
パウダーブルー■rgbPowderBlue17622423015130800
明るい青■rgbLightBlue17321623015128749
深いスカイブルー■rgbDeepSkyBlue019125516760576
スカイブルー■rgbSkyBlue13520623515453831
薄いスカイブルー■rgbLightSkyBlue13520625016436871
アリスブルー■rgbAliceBlue24024825516775408
スチールブルー■rgbSteelBlue7013018011829830
スレートグレー■rgbSlateGray1121281449470064
薄いスレートグレー■rgbLightSlateGray11913615310061943
ドジャーブルー■rgbDodgerBlue3014425516748574
薄いスチールブルー■rgbLightSteelBlue17619622214599344
コーンフラワーブルー■rgbCornflowerBlue10014923715570276
ロイヤルブルー■rgbRoyalBlue6510522514772545
ゴーストホワイト■rgbGhostWhite24824825516775416
ラベンダー■rgbLavender23023025016443110
ミッドナイトブルー■rgbMidnightBlue25251127346457
ネイビー■rgbNavy、rgbNavyBlue001288388608
濃い青■rgbDarkBlue001399109504
淡い青■rgbMediumBlue0020513434880
青■rgbBlue0025516711680
濃いスレートブルー■rgbDarkSlateBlue72611399125192
スレートブルー■rgbSlateBlue1069020513458026
淡いスレートブルー■rgbMediumSlateBlue12310423815624315
淡い紫■rgbMediumPurple14711221914381203
青紫■rgbBlueViolet1384322614822282
インディゴ■rgbIndigo7501308519755
濃いオーキッド■rgbDarkOrchid1535020413382297
濃い紫■rgbDarkViolet148021113828244
淡いオーキッド■rgbMediumOrchid1868521113850042
あざみ色■rgbThistle21619121614204888
プラム■rgbPlum22116022114524637
紫色■rgbViolet23813023815631086
紫■rgbPurple12801288388736
濃いマゼンタ■rgbDarkMagenta13901399109643
明るい紫■rgbFuchsia255025516711935
オーキッド■rgbOrchid21811221414053594
淡いバイオレットレッド■rgbMediumVioletRed199211338721863
深いピンク■rgbDeepPink255201479639167
ホットピンク■rgbHotPink25510518011823615
ラベンダーブラッシュ■rgbLavenderBlush25524024516118015
ペールバイオレットレッド■rgbPaleVioletRed2191121479662683
深紅■rgbCrimson22020603937500
ピンク■rgbPink25519220313353215
薄いピンク■rgbLightPink25518219312695295

2020年11月23日月曜日

[VBA]RGBカラー値からRGBの各々の値を取得

[はじめに]
・RGBの各要素からRGBカラー値を取得する為に、
 VBAではRGB関数が用意されていますが、
 その逆(RGBカラー値から元のRGB各要素を取得)の関数は
 用意されていません。

 たまに必要になることがあるので、
 ユーザ定義関数を作成しましたので、備忘録として掲載します。

[ソース]
'[機能]
' RGB カラー値から、
' 赤(R)、緑(G)、青(B)の各々の値を取得する。
'[引数]
' rgbColor:RGB カラー値
'[戻り値]
' RGBの各値(配列)
'  0番目:赤(R)
'  1番目:緑(G)
'  2番目:青(B)
Public Function GetRgbValues(ByVal rgbColor As Long) As Integer()

    Dim rtnColors(2) As Integer

    '赤(R)
    rtnColors(0) = rgbColor Mod 256
    '緑(G)
    rtnColors(1) = rgbColor \ 256 Mod 256
    '青(B)
    rtnColors(2) = rgbColor \ 65536

    GetRgbValues = rtnColors

End Function
[VBA]RGBカラー値から赤(R)、緑(G)、青(B)の各々の値を取得

2020年11月22日日曜日

[VBA]セルの取得、値の書き込み

[はじめに]
・Excel VBAでよくセルの情報を取得することがありますが、
 様々な書き方があるので、備忘録に記載します。

 セル座標をA1形式や行列番号で指定したり、
 複数セルの範囲指定、その他のブックやシート上のセルの取得 など
 用途に応じたパターンを適用頂ければと思います。

[ソース]
Private Sub WriteToCellValue()

    '■■■1.「A1形式」でセルを指定する。
    ' ①単一セルを扱う。
    ' ※例:セルA1に値を出力
    Range("A1").Value = "あ"
    
    ' ②複数セルを扱う(その1)
    ' ※例:セルA3~A5に値を出力
    Range("A3:A5").Value = "い"

    ' ③複数セルを扱う(その2)
    ' ※例:セルC1~D10に値を出力
    Range(Range("C1"), Range("D10")).Value = "う"

    '■■■2.行番号、列番号でセルを指定する。
    ' 行番号、列番号をカウントアップ等をさせたい場合、有効。
    ' ※例:セル(1行目、6列目)に値を出力
    Cells(1, 6).Value = "え"

    '■■■3.特定のセル範囲内から、相対的にセルを取得
    ' ※例:セルD4(B3~E5内で2行目、3列目)に値を出力
    Range("B3:E5").Cells(2, 3).Value = "お"

    '■■■4.特定のセル範囲内から、相対的な行を取得
    ' ※例:B3~E5内の1行目に値を出力
    Range("B3:E5").Rows(1).Value = "か"

    '■■■5.特定のセル範囲内から、相対的な列を取得
    ' ※B3~E5内の3列目に値を出力
    Range("B3:E5").Columns(3).Value = "き"

    '■■■6.他のシートのセルを扱う。
    ' 指定セルが、他のシートにある場合は、
    ' 以下のように記載します。
    ' シート省略時は、アクティブシートが対象になります。
    ' ※例:シートSheet1のセルA2に値を出力
    '   以下例のRangeは上記の1~5の表記でも可能。
    Sheets("Sheet1").Range("A2").Value = "く"

    '■■■7.他のブックのセルを扱う。
    ' 指定セルが、他のブック、シートにある場合は、
    ' 以下のように記載します。
    ' ブック省略時は、アクティブブックが対象になります。
    ' ※例:当ブックのシートSheet1のセルA3に値を出力
    '   以下例のRangeは上記の1~5の表記でも可能。
    ThisWorkbook.Sheets("Sheet1").Range("A3").Value = "け"

End Sub
[VBA]セルの選択

[雑記]ドローン(DJI Mini 3)

(1)雑記 もともと多趣味の友人 masakazu Drone 氏が、 最近、 ドローン にハマり始めて、 更に、新たな趣味が増えたとのこと。 ドローン を始めてから、 まだ1年も経っていないとのことですが、 旅行先で山や川の景色を 空撮 して、 Youtube ...