|
▼FM さん:
こんばんは。
まず、このエラー(rangeクラスのselectメソッドが失敗しました)
再現するまでの記述がちょっと足りません。
この記述でFM さんよりも初心者の方が
FM さんが 何に悩んでいるのか、わかるとは
私にはとても思えません。
こういう場合は、この投稿を見ている方は
FM さんの記述どおりにブックを作成し、
操作すれば、おっしゃっているエラーが誰でも再現できる記述を
しなければなりません(少なくともその努力を惜しんではいけません)。
Excelを起動して新規ブックに問題のエラーを再現することを考えます。
・新規ブックSheet1というシートのセルA3〜D150まで適当な文字または数字を
隈なく入力してください(データは何でも良いです)。
・このSheet1のセルA3〜D150を選択してください。
・選択した状態で「挿入」---「名前」----「定義」とクリックし、
「名前の定義」ダイアログを表示させます。
・既に参照範囲は「=Sheet1!$A$3:$D$150」と表示されていますね?
・名前は「一覧表」(両端の「」は除く)と指定してOKボタンをクリックします。
次にVBAです。
標準モジュールに
'================================
Option Explicit
'============================================
Sub test1()
Application.Goto "一覧表"
End Sub
'===========================================================
Sub test2()
Worksheets("sheet1").Range("A3").CurrentRegion.Select
End Sub
これで準備はOKです。
Sheet1というシートをアクティブにして
test1、test2を実行してみてください。
test1,test2どちらも正しくSheet1のセルA3〜D150を選択しますよね!!
次にSheet2というシートをアクティブにした状態で
test1、test2を実行してみてください。
test1は正常にSheet1のA3〜D150を選択しますが、
test2は、「1004 rangeクラスのselectメソッドが失敗しました」
というエラーになります。
Sub test2()
With Worksheets("sheet1")
.Activate
.Range("A3").CurrentRegion.Select
End With
End Sub
こんなふうに修正すると正常にSheet1のA3〜D150を選択します。
自分が抱えている問題を説明するのは大変です。
でも、それをすることは
プログラミングに無駄にはなりませんよ!!
|
|