Excel VBAに於いて
同BOOKのSheet1から、Sheet2の文字列を変数に入れよとするとエラーになります。
何故でしょうか。
また、その対処法を、御教示ください。
Dim objWBK As Workbook
Dim objSH As Worksheet
Set objWBK = ThisWorkbook
Set objSH = objWBK.Sheet2
Dim cnsFILENAME As String
cnsFILENAME = objSH.Range("a4") ← ここで、「オブジェクトは、このプロジェクトでサポートされていません。」と、エラーメッセージが出る。
Sheet2.Range(”A4”)には、文字列を入れてある。
以上、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
こんにちは。
Rangeオブジェクトは値を参照するときにはシートがActiveになっていないと
エラーになった記憶があります。
エラーの前に
objSH.Activate
を入れるとどうですか?
はずしてたらすみません。
#もし「ビンゴ」でしたら、Cellsオブジェクトの方が色々勝手が良いです。
objSH.cells(4,2)
連絡が遅れて済みません。
「ビンゴ」でした。
シートを切り替える度に、Activateと指定しないと行けなかったようです。
(面倒ですが・・・)
No.2
- 回答日時:
多分 問題なく変数に値を渡せるはずです。
きっと、それ以外のところで記述が間違ってると思いますよ。
まさかと思いますが、Range("")内のセル名(アドレス)に全角使ってませんよね?
Range("A4")
とか・・・
あと、基本的には
cnsFILENAME = objSH.Range("a4").Value と記述し
通貨型や日付型を数値型として扱うっていうなら
cnsFILENAME = objSH.Range("a4").Value2
にしておいた方が、明示的になるので私も推奨します。
No.1
- 回答日時:
いや、エラー出てるのは
>Set objSH = objWBK.Sheet2
こっちでしょ。
Set objSH = objWBK.Sheets("Sheet2")とかならわかるんですけど。
#Setって書いてないから確かに文字列入るんだけど、個人的にはあまりデフォルトプロパティとか暗黙の型変換って好きじゃないので、
cnsFILENAME = ObjSH.Range("a4").value2
あたりまで書きたがると思う
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
別のシートから値を取得するとき
Visual Basic(VBA)
-
別のシートを参照して計算する方法
Visual Basic(VBA)
-
エクセルVBA 別シートの複数のセルの値をコピーする方法
Excel(エクセル)
-
-
4
EXCEL VBA 別シートの文字をシート内で検索
Excel(エクセル)
-
5
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
8
【EXCEL VBA】Range(A:A").Find(What:="キーワード")の1行目について"
Visual Basic(VBA)
-
9
エクセルVBAで値の貼り付けができない
その他(Microsoft Office)
-
10
文字列の結合を空白行まで実行
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBSで変数の宣言はできないので...
-
エクセルエラー13型が一致しま...
-
ExcelVBA Range クラスの Page...
-
【Excel VBA】マクロをボタンに...
-
実行時エラー48発生時のDLL特定...
-
OLEDB.NETで接続できない
-
VBS実行時エラー オブジェクト...
-
excel vbaでvlooupの変数がわか...
-
マクロについて教えてください...
-
プロシージャ名の取得
-
EXCEL VBAマクロ中断でデバッグ...
-
VBAでのエラー
-
実行時エラー3001「引数が間違...
-
なぜエラーになるのでしょうか...
-
Excel2019 ワークシートのコピ...
-
vbaのvlookup関数エラー原因を...
-
なぜこんな初歩的なVBAのIf文で...
-
デバッグ時はOK、デバッグ無し...
-
Outlook.ApplicationをCreateOb...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
実行時エラー3001「引数が間違...
-
VBS実行時エラー オブジェクト...
-
VBAがブレークモードになっ...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
EXCEL VBAマクロ中断でデバッグ...
-
VBSで変数の宣言はできないので...
-
ADODB.Streamを使用してUTF-8を...
-
実行時エラー -'-2147417848
-
AccessVBAでExcelを起動し、罫...
-
VB6+SQL サーバー 2000 で 実行...
-
Outlook.ApplicationをCreateOb...
-
Application.ActiveInspectorで...
おすすめ情報