検索

キーワード


目次

【Excel VBA】オブジェクトを「Set」ステートメントで変数に格納する方法

  • 公開日:2023-06-19 10:14:25
  • 最終更新日:2023-06-18 20:41:44

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

皆さんこんにちは、エンジニアのIMMRです。


突然ですが、下記ブックがあったとします。


図1 ブックサンプル1

ブックサンプル1

そして、下記ブックのように

罫線をつけたり、背景色をつけたり、フォントの変更をしたいと思います。


図2 ブックサンプル2

図2 ブックサンプル2


どうやって行いますか。

一つのやり方をあげると下記のプログラムのように行います。

Range("A3:B9").Font.Bold = True
Range("A3:B9").Font.Color = RGB(255, 0, 0)
Range("A3:B9").Interior.Color = RGB(255, 255, 0)
Range("A3:B9").Borders.LineStyle = xlContinuous


セル(A3)~セル(B9)フォント太文字にする。

セル(A3)~セル(B9)フォントのカラーを赤色にする。

セル(A3)~セル(B9)背景色をカラーを黄色にする。

セル(A3)~セル(B9)罫線を追加する。

などといった動作です。


「セル(A3)~セル(B9)」で・・・と何回も同じ範囲を記載して、うっとうしいですよね。

そのためにセル(A3)~セル(B9)を変数に格納して作業するオブジェクト型の変数というものがあるのでそれを説明します。


1.オブジェクト型の変数

オブジェクト型の変数にするとシートのセル範囲(例えば、A3~B9)を変数のように行うことができます。

サンプルであげたセルの範囲だった場合、毎回セル(A3)~セル(B9)と記載する必要がなくなります。


2.オブジェクト型変数宣言例

オブジェクト型の変数は下記のように宣言をしていきます。

そして、宣言後にオブジェクト型の変数に格納をしていきます。


オブジェクト型の変数を宣言する

Rangeのオブジェクト型の変数は「As Range

または、すべてのオブジェクト型を表すオブジェクト型「As Object」で宣言する必要があります。

そして、変数であるので宣言名(名前)も決める必要があります。


記載例

Dim 宣言名 As Range

または

Dim 宣言名 As Object


どちらでも可能です。


セルの範囲を格納する

ふつうのセルや変数のように”=”を使って右の値を左の値に代入を行うのですが、

オブジェクト型の変数にセルの範囲を格納するには、もう一つ行うことがあります。

それは、Setを使うことです。


記載例

Set オブジェクト型の変数の宣言名 = Range(セル範囲)


記載方法

記載方法はいままでと同じように

記載していたものが、宣言したオブジェクト型の変数に変わるだけです。


記載例

Range(セル範囲).Font.Bold = True

オブジェクト型変数の宣言名.Font.Bold = True

になるだけです。


3.オブジェクト型変数を使用したサンプルプログラム

使用するのは、図1のブックサンプル1と同じです。


図3 ブックサンプル1

図3 ブックサンプル1


このブックの値が記載されているセル(A3)~セル(B9)に対して下記の作業を行います。

太文字にする。

フォントのカラーを赤色にする。

背景色をカラーを黄色にする。

罫線を追加する。


サンプルプログラム

Sub test01()

    Dim SR As Object

    Set SR = Range("A3:B9")

    SR.Font.Bold = True
    SR.Font.Color = RGB(255, 0, 0)
    SR.Interior.Color = RGB(255, 255, 0)
    SR.Borders.LineStyle = xlContinuous

End Sub


オブジェクト型の変数名を”SR”という名前で宣言しています。

オブジェクト型の変数名の”SR”にセルの範囲("A3:B9")を格納しています。


この記載方法により、いままでRange(””)・・・と続けて記載する必要がなくなりました。

すっきりしましたよね。


本当は、Withステートメントと合わせて記載すると

さらにすっきりとした記載方法になるのですが、その記載方法は別の機会に説明します。


4.オブジェクト型変数を使用したサンプルプログラム(実行結果)

上記、サンプルプログラムの実行結果ですが、図2のブックサンプル2と同様の結果となりました。


図4 ブックサンプル1(実行結果)

図4 ブックサンプル1(実行結果)

・太文字になっています。

・フォントのカラーが赤色になっています。

・背景色をカラーが黄色になっています。

・罫線が追加されています。


「Set」ステートメントを使用して、文字の変更等を処理を行うことがきました。


【著者】

Imamura

「挑戦心」を忘れずに、新しいことにチャレンジしています。 資格:VBAエキスパート Excel VBA(ベーシック/スタンダード) 等

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事