こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAの書き方

VBA初心者です。

EXCEL2007を使っています。

いま、下記のような書き方で、

1.セル(A1)をダブルクリックしたら「Z:\管理\01.xlsx」を開く
2.セル(A2)をダブルクリックしたら「Z:\管理\02.xlsx」を開く



n.セル(An)をダブルクリックしたら「「Z:\管理\0n.xlsx」を開く

という動きをしたいと考えています。

わからないまま、WEBサイトで見つけた書き方を下記のように書き換えて試してみました。
一つではうまくいきますが、二つ目の設定をすると・・・

添付画像のように、「コンパイルエラー 名前が適切ではありません」と出てしまいます。

WEBで調べた限りでは、

「Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)」
の部分が同じ名前がエラーの原因のように思えますが、どうしてよいかわかりません。

よろしくお願いします。
--------------------------------------------------------

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address <> "$A$1" Then Exit Sub
Cancel = True
ChDir "Z:\管理\"
Workbooks.Open Filename:="Z:\管理\01.xlsx"
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address <> "$A$2" Then Exit Sub
Cancel = True
ChDir "Z:\管理\"
Workbooks.Open Filename:="Z:\管理\02.xlsx"
End Sub

投稿日時 - 2011-01-31 03:36:02

QNo.6487282

すぐに回答ほしいです

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

「Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)」
を2度記述しているからエラーです。
1つにまとめればOKです。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
’A1:A100以外をクリックするとコード終了
If Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub
Cancel = True
'ChDir "Z:\管理\" 'OPENメソッドをフルパスで指定するなら、不要
Workbooks.Open Filename:="Z:\管理\" & Format(Target.Row, "00") & ".xlsx"
End Sub

投稿日時 - 2011-01-31 06:15:27

補足

早速のご回答ありがとうございます。
設定できました。
大変、助かりました。

厚かましいですが…
ご教示いただいた方法では行番号と同じファイル名(A11だと11.xlsx)になってしまうので
できれば、

1.その行の"あるセルのデータ"と同じ名前のファイルを開く
2.行番号から(A11の場合は15.xlsxとか7.xlsx)のように行番号データから幾つか増減した値のファイル名を指定する。

か、どちらか(若しくは両方ご教示いただければ幸いですが…)で行いたいと思います。

すいませんが、よろしくお願いします。

投稿日時 - 2011-02-01 00:06:36

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問