Excel VBA 定数にオブジェクトを指定したい
いつもお世話になりますm(__)m
Excel VBAで、定数としてオブジェクトの指定はできないのでしょうか?
例えば、WorkSheets("Sheet1")を定数「Srt1」として設定したいのですが、
Public Const Srt1 As Object = Worksheets("Sheet1")
としても「定数のデータ型が不正です」とエラーがでます。
例えば、セルに値をセットする時に
Worksheets("Sheet1").Range("A1").Value="あああ"
Worksheets("Sheet1").Range("A2").Value="いいい"
Worksheets("Sheet1").Range("A3").Value="ううう"
と書きますが、これを
Srt1.Range("A1").Value="あああ"
Srt1.Range("A2").Value="いいい"
Srt1.Range("A3").Value="ううう"
と書ければプログラムも見やすく、書きやすくなると思いました。
プログラムの最初に
Dim Srt1 As Object
Set Srt1 = Worksheets("Sheet1")
とすれば使えるのですが、複数のシート名をまずは定数として登録したいと思っていますが、オブジェクト(ワークシート名)は定数として登録することは出来ないのでしょうか?
お詳しいかた、是非ともご教授お願い致しますm(__)m
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
プロパティにするとか。
Property Get Srt1() As Worksheet
Set Srt1 = Worksheets("Sheet1")
End Property
No.2
- 回答日時:
一番最初に
Public Srt1 As Object
として定義して(クラス変数って言うんでしょうか?)
各メソッドで
Set Srt1 = Worksheets("Sheet1")
という方法ではどうでしょう?
こうすればそのメソッドだけじゃなくてクラス全体で使えると思います。
Option Explicit
Public Srt1 As Object
Private Sub メソッド名()
Set Srt1 = Worksheets("Sheet1")
処理
End Sub
No.1
- 回答日時:
できません。
オブジェクト型は定数にできません。
インスタンス化が必要だからです。
つまり、インスタンスを作り出すと言う
実行行為により、始めて有効になるような
ものを静的に定義できないということです。
「インスタンス化」が分からない場合は
別途、ご質問ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
VBA Constの指定シートのセルを指定する方法
Visual Basic(VBA)
-
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
-
4
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
5
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
6
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
7
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
VB6,リストボックスの特定行の色変更は可能?
Visual Basic(VBA)
-
10
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
11
タブオーダーリストからのの削除
Excel(エクセル)
-
12
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
13
リストボックスの特定行の背景色
Visual Basic(VBA)
-
14
エクセルVBAでシートモジュールでのパブリック変数
Excel(エクセル)
-
15
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
16
TextBoxコントロールを引数として渡すには?
その他(教育・科学・学問)
-
17
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
18
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
19
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
20
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#のクラスで値渡しをする
-
VB.netでメソッドからコントロ...
-
エクセルVBA 画像を貼り付ける...
-
JSPでのArrayListの表示につい...
-
VBS でのソート処理Excel2003
-
サーブレットコンテキストの意...
-
Excel VBA 定数にオブジェクト...
-
Excel 2007 <VBAでグラフの操作...
-
Vba ListViewの行挿入に関して...
-
servletからjspへオブジェクト...
-
VBAでの[]
-
getHeigth,getWidthについて
-
インストール時に入力したユー...
-
PrintFormを使用してのプリント
-
System.Collections.SortedList
-
Dispose()は、どんな時に使うの...
-
String型からlong型への変換は...
-
ピクチャーボックスに点を打つ...
-
VB2005でADDとINSERTの違いは?
-
getParameter()について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーブレットコンテキストの意...
-
エクセルVBA 画像を貼り付ける...
-
servletからjspへオブジェクト...
-
VB.netでメソッドからコントロ...
-
JSPでのArrayListの表示につい...
-
VBAでの[]
-
javaで、、、
-
C#のクラスで値渡しをする
-
Excel VBA 定数にオブジェクト...
-
Dispose()は、どんな時に使うの...
-
Vba ListViewの行挿入に関して...
-
Javaでブラウザ判定
-
getParameter()について
-
VB.NETでのnothing の意義について
-
PrintFormを使用してのプリント
-
ピクチャーボックスに点を打つ...
-
String型からlong型への変換は...
-
drawStringの座標について
-
エクセルVBA/SpecialCellsで特...
-
GridViewに行追加するには?
おすすめ情報