
No.3
- 回答日時:
#2です
失礼しました >売上集計表のブックを閉じる
なのですね。
これは、ダブルクリックをトリガーにご希望の処理をすることは難しいと思います。
ただ、私は初級レベルの素人なので、何か方法はあるのかも知れませんので
的確な回答がされるかも知れません。
私の代替え案は、ダブルクリックするセルを選択し、ボタンやショートカットキーなどに登録したVBA(標準モジュールから)で実行する方法です。
一応にサンプルーコードを書いておきます
Sub sample()
Dim openFileName As String
Dim Rng As Range
Set Rng = Selection.Cells
openFileName = ActiveWorkbook.Path & "\領収書.xlsx"
With Workbooks.Open(openFileName)
With .Worksheets("領収書")
.Range("B7") = Rng.Offset(, 1).Value
.Range("C11") = Rng.Offset(, 3).Value
.Range("D16") = Rng.Offset(, 2).Value
End With
End With
ThisWorkbook.Close SaveChanges:=False
End Sub
領収書.xlsxは実行ブックと同じフォルダ(階層)にある事としていますので書き替えてください。また、保存系処理も手直しが必要と考えます。
No.2
- 回答日時:
こんにちは
画像の表組とご説明分が一致していませんが、B4セルをダブルクリックした時
>「顧客名」C列 「適応」D列 「金額」E列 を
B7に顧客名 C11に金額 D16に適応を
別ブックを開くところが分からないのでしょうか?
Workbooks.Open などで対象を開くと良いと思います。
Withで絡めて書くと
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim openFileName As String
If Intersect(Target, Range("B4:B8")) Is Nothing Then Exit Sub
openFileName = ActiveWorkbook.Path & "\領収書.xlsx"
With Workbooks.Open(openFileName)
With .Worksheets("領収書")
.Range("B7") = Target.Offset(, 1).Value
.Range("C11") = Target.Offset(, 3).Value
.Range("D16") = Target.Offset(, 2).Value
End With
.Close
End With
Cancel = True
End Sub
openFileNameは実際のブックのフルパス
"B4:B8" VBA処理実行範囲
対象シート名は領収書
対象ブックやシートが見つからない場合 エラー1004
各所、適時変更してください。
この回答へのお礼
お礼日時:2021/06/28 18:32
ご指南ありがとうございます
転記した後に 転記元(Book売上集計表)のブックを閉じて領収書のブックだけをそのまま残したいのですが メモリーエラーで出来ません
どのようにすればいいでしょうか よろしくお願いします
No.1
- 回答日時:
>現在は別シートに転記していますが・・・
ということですので「Book売上集計表」内の「領収書シート」へ転記しているということでしょうか?
また、以下のコマンドは理解できますか?または使用していますか?
Dim WB as Workbook
Set WB=Book領収書’など既に開いているBookを設定可能
Dim WS as WorkSheet
Set WS=領収書シート
これらがわかるようでしたら、比較的簡単に変更可能です。
せめて、With・・・・Endwithを使用していなければその変更箇所は多くなることが予想されます。
その他のアドバイスとしては「Book領収書(別ブック)」の元になるテンプレートファイルを準備した方が楽になりそうです。
もしわかるようでしたら、現在使用しているコマンドの
「どこから(転記元データ)」→「どこへ(転記先)」の部分(の一例)を示されれば、1から作り直さすとも変更点のみを指南することが可能になると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
VBAでブックを非表示で開いて処...
-
エクセルで参照しているデータ...
-
【マクロ】【画像あり】❶ブック...
-
Excelファイルをダブルクリック...
-
【マクロ】【画像あり】ファイ...
-
エクセルでウィンドウの枠固定...
-
WorkBooksをオープンさせずにシ...
-
フォルダ内の複数ファイルから...
-
エクセル2016です。「ブッ...
-
エクセルファイルを開かずにpdf...
-
エクセル 複数のブックを一度...
-
エクセル2013で登録したマクロ...
-
Excel(2010)のフィルターが保...
-
Excelで指定範囲のデータ...
-
外部ブック参照が#REF!になって...
-
指定ファィルの指定シートをシ...
-
別ブックから入力規則でリスト...
-
Excelでブックの共有を掛けると...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ】【画像あり】ファイ...
-
Excelファイルをダブルクリック...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
Excelで複数ブックの同一セルに...
-
Excelでブックの共有を掛けると...
-
フォルダ内の複数ファイルから...
-
Excel(2010)のフィルターが保...
-
エクセルでウィンドウの枠固定...
-
同じフォルダへのハイパーリン...
-
Excelの警告について
-
エクセルを開くと最大化などの...
-
エクセルにおける,「ブック」...
-
参照したいブックのパス名に"["
-
エクセルファイルをオープンし...
-
Excelで指定範囲のデータ...
おすすめ情報
現在使用しているコードは
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set Target = Intersect(Target, Me.Range("B4").CurrentRegion)
If Target Is Nothing Then Exit Sub
Set Target = Intersect(Target.EntireRow, Me.Range("C:E"))
Target.Select つづきは次に
つづきです
With Worksheets("Sheet2")
.Range("B7").Value = "'" & Target(1, 1).Value
.Range("C11").Value = Target(1, 3).Value
.Range("D16").Value = Target(1, 2).Value
End With
Cancel = True
End Sub
が現在のコードです よろしくお願い致します。