プロが教える店舗&オフィスのセキュリティ対策術

作業中のエクセルでセルをクリックし、
マクロボタンを押すと、そのセルと『同名のエクセルファイル』を開き、
クリックしたセルと同行のC列のセルを『同名のエクセルファイル』のSheet3のL1にコピーしたいと考えています。

以下のプログラムにどのように追修正したらいいでしょうか。

Private Sub CommandButton1_Click()
Dim myPath As String, fN As String, myF As String
myPath = "保存場所のパス" & "\"
If Selection.Count = 1 Then
myF = Selection
fN = Dir(myPath & myF & ".xlsx")
If fN <> "" Then
Workbooks.Open (myPath & myF & ".xlsx")
Else
MsgBox "該当ファイルなし"
End If
Else
MsgBox "1セルのみ選択"
End If
End Sub

A 回答 (2件)

こんにちは!



当方が投稿したコードですね。
少し変更してみました。

Private Sub CommandButton1_Click()
Dim myPath As String, fN As String, myF As String
Dim myRow As Long, myCol As Long, wB As Workbook
myPath = "保存場所のパス" & "\"
If Selection.Count = 1 Then
myRow = Selection.Row
myCol = Selection.Column
myF = Cells(myRow, myCol) & ".xlsx"
fN = Dir(myPath & myF)
If fN <> "" Then
Workbooks.Open (myPath & myF)
Set wB = ActiveWorkbook
Cells(myRow, "C").Copy wB.Worksheets("Sheet3").Range("L1")
wB.Close savechanges:=True '//ブックを保存して閉じる//
Else
MsgBox "該当ファイルなし"
End If
Else
MsgBox "1セルのみ選択"
End If
End Sub

※ ファイル名が入っている列が不明なのでどこのセルでも対応できるようにしています。
列が判ればその列限定でのコードも可能です。m(_ _)m
    • good
    • 0
この回答へのお礼

解決しました。
ありがとうございました。

お礼日時:2017/03/12 15:11

ズバリの回答ではないですが、マクロの記録を使って似たような動作をしてみれば、こんな感じっていう流れが作られると思います。



一部、セルの内容のファイルを開くとか、操作ではできないところもありますが、手作業で開いたことを記録されれば、一部修正でいいかと思います
    • good
    • 0
この回答へのお礼

ありがとうございます。
チャレンジしてみます。

お礼日時:2017/03/12 15:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!