• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA シート非選択で表示形式を設定)

Excel VBA シート非選択で表示形式を設定

このQ&Aのポイント
  • Excel VBAで、シートを選択せずに表示形式を設定する方法はあるのか
  • VBAを使用して、シートを選択せずにセルの表示形式を設定する方法を教えてください
  • Excel2010で、シートを選択しない状態で特定のセルの表示形式を変更する方法を教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • takncom
  • ベストアンサー率16% (15/91)
回答No.2

>(1) WS2.Range(Cells(2, 2), Cells(row_no + 3, col_no + 3)).NumberFormatLocal = "0.0_ " >というような場合は、 >「実行時エラー'1004': '>Range'メソッドは失敗しました:'Worksheetオブジェクト'」 >というエラーになってしまいますが、 >このような場合にはどのようにすればいいのでしょうか。 指定しているシートが違うから エラーとなっています。 WS2.Range Cells(2, 2) Cells(row_no + 3, col_no + 3) 上記の参照しているシートが 一番上は WS2になっていますが、 次の二つは 指定してありませんので、どこのシートか不明なためエラーとなるのです。 WS2.Range(Cells(2, 2), Cells(row_no + 3, col_no + 3)).NumberFormatLocal = "0.0_ " ↓ WS2.Range(WS2.Cells(2, 2), WS2.Cells(row_no + 3, col_no + 3)).NumberFormatLocal = "0.0_ "

yam2012
質問者

お礼

なるほど、そういうことでしたか。 大変よく分かりました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • takncom
  • ベストアンサー率16% (15/91)
回答No.1

Dim WS2 As Worksheet Set WS2 = ThisWorkbook.Sheets("Sheet1") WS2.Range("A3").NumberFormatLocal = "0.0_ "

yam2012
質問者

補足

申し訳ありません。 質問の例がよくなかったです。 (1) WS2.Range(Cells(2, 2), Cells(row_no + 3, col_no + 3)).NumberFormatLocal = "0.0_ " を (2) WS2.Range("A1").NumberFormatLocal = "0.0_ " というように簡略化しすぎて、 エラーも下記のエラーと混同してしまっていて、 (2)ではエラーは出ていませんでした。 (1) WS2.Range(Cells(2, 2), Cells(row_no + 3, col_no + 3)).NumberFormatLocal = "0.0_ " というような場合は、 「実行時エラー'1004': 'Range'メソッドは失敗しました:'Worksheetオブジェクト'」 というエラーになってしまいますが、 このような場合にはどのようにすればいいのでしょうか。 セルを1個ずつfor文などでループして設定するしかないのでしょうか。 よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A