C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

【ExcelVBA】Rangeメソッドのエラー /工場プログラマー (21/03/26(Fri) 13:14) #97094
Re[1]: 【ExcelVBA】Rangeメソッドのエラー /魔界の仮面弁士 (21/03/26(Fri) 14:54) #97095
  └ Re[2]: 【ExcelVBA】Rangeメソッドのエラー /工場プログラマー (21/03/26(Fri) 15:42) #97096 解決済み


親記事 / ▼[ 97095 ]
■97094 / 親階層)  【ExcelVBA】Rangeメソッドのエラー
□投稿者/ 工場プログラマー (63回)-(2021/03/26(Fri) 13:14:23)

分類:[Microsoft Office 全般] 

Win10
結合セルの値の取得がしたくて、

For i = 1 to 最終行
If Range("A" & i).MergeArea.Item(1) = "hogehoge" then
…
End If

って感じを使ったんですど
Rangeメソッドのエラーと出ました。
指定セルでやるとうまくいくんですけど、解決策ってありますか?

[ □ Tree ] 返信 編集キー/

▲[ 97094 ] / ▼[ 97096 ]
■97095 / 1階層)  Re[1]: 【ExcelVBA】Rangeメソッドのエラー
□投稿者/ 魔界の仮面弁士 (3027回)-(2021/03/26(Fri) 14:54:24)
No97094 (工場プログラマー さん) に返信
> If Range("A" & i).MergeArea.Item(1) = "hogehoge" then

単に Range("A1") だけで済ませると、曖昧さが出てしまいます。
どのシートの Range を操作しているのかを明確にしましょう。Cells 等も同様です。

たとえば
 If ThisWorkbook.Worksheets("Sheet1").Range("A" & i).MergeArea(1).Value = "hogehoge" Then
などのようにします。

Range("A1") というコードをシートモジュール上に書いた場合には、
Me.Range("A1") の意味となり、そのシート上のセルであることが明確になるのですが、
ThisWorkbook モジュールや標準モジュール上に記述していた場合には、
どのシートを操作しているのかが曖昧になります。


> Rangeメソッドのエラーと出ました。
> 指定セルでやるとうまくいくんですけど、解決策ってありますか?

手元の環境ではエラーを再現させられなかったので、
エラー発生時の i の値と、該当セルを含む結合セルのアドレスを教えてください。

また、正確なメッセージの内容は、
 実行時エラー '1004'「'Range' メソッドは失敗しました: '_Global' オブジェクト」
でしょうか。あるいは
 実行時エラー '1004'「'Range' メソッドは失敗しました: '_Worksheet' オブジェクト」
でしょうか。あるいは
 実行時エラー '1004'「Range クラスの MergeArea メソッドが失敗しました。」
でしょうか。それとも…。
[ 親 97094 / □ Tree ] 返信 編集キー/

▲[ 97095 ] / 返信無し
■97096 / 2階層)  Re[2]: 【ExcelVBA】Rangeメソッドのエラー
□投稿者/ 工場プログラマー (64回)-(2021/03/26(Fri) 15:42:43)
No97095 (魔界の仮面弁士 さん) に返信
> ■No97094 (工場プログラマー さん) に返信
>>If Range("A" & i).MergeArea.Item(1) = "hogehoge" then
>
> 単に Range("A1") だけで済ませると、曖昧さが出てしまいます。
> どのシートの Range を操作しているのかを明確にしましょう。Cells 等も同様です。
>
> たとえば
>  If ThisWorkbook.Worksheets("Sheet1").Range("A" & i).MergeArea(1).Value = "hogehoge" Then
> などのようにします。

コードの書き忘れがあったみたいでした、Value等…
明確にしてCells使ってみたところうまくいきました。

ありがとうございます。

解決済み
[ 親 97094 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -