見積書の商品を発注したときに、その情報を別ブックで管理したいと思っています。
見積書の発注用シートとは別のシートに管理データを蓄積しながら転記できるマクロは組めたのですが、使い勝手が悪いため全く別のブックに管理データを蓄積したいと思います。
見積書データは保存をするときは、その都度異なるファイル名で保存し、管理データはc:\管理¥集計.xlsで保存します。
途中まで作ってみたのですが、アクティブシートとブックが途中でこんがらがってしまって行き詰っています。
サンプルデータを添付いたしますので、ご教示願えませんでしょうか。
マクロとVBAについては初心者なので大変申し訳ありませんが、よろしくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
マクロを載せているブックに「発注シート」が存在する
「発注シート」のA1,B2,C3セルの内容を,c\管理\集計.xlsのSheet1に転記する
sub macro1()
workbooks.open("C:\管理\集計.xls")
with workbooks("集計.xls").worksheets("Sheet1").range("A65536").end(xlup).offset(1)
.value = thisworkbook.worksheets("発注シート").range("A1").value
.offset(0, 1).value = thisworkbook.worksheets("発注シート").range("B2").value
.offset(0, 2).value = thisworkbook.worksheets("発注シート").range("C3").value
end with
workbooks("集計.xls").close savechanges:=true
end sub
>アクティブシートとブックが途中でこんがらがってしまって行き詰っています。
アクティブ何タラやセレクト・セレクションを使ってマクロを書いていると,そうなりがちです。
サンプルを参考に
どのブックの.何て言うシートの.どこ番地のセル に何をする
という書きぶりに慣れるよう,練習してみてください。
頂いた回答を元に調整したところ、無事に転記ができるようになりました!
マクロの書き方になれるように頑張ります。
ありがとうございました。
No.2
- 回答日時:
No.1 さんが書かれたことがすべてなのですが、
実際の方法として私が好んで実践しているのを紹介させてください。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dim 見積書xls As Workbook, 集計xls As Workbook
Dim 販売記録 As Worksheet, 見積Data As Worksheet
Dim 販売記録_行 As Long, 見積Data行 As Long
Set 見積書xls = ThisWorkbook
Set 集計xls = Workbooks.Open ("C:\集計\集計.xls")
Set 見積Data = 見積書xls.Worksheets("見積Data")
Set 販売記録 = 集計xls.Worksheets("販売記録")
販売記録_行 = ああだこうだ(省略)
見積Data.Range("B21:S30").Copy 販売記録.Cells(販売記録_行, 1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
すこし冗長ですが、こんな風に書けば間違えずコーディングできます。
ポイントは2点
(1) 日本語で意味の分かる変数名、関数名を使う
(2) オブジェクト(Worksheetなど)は親の名前もハッキリ書く
VBA初心者はオブジェクトの親子関係がよくわからないものですが
このように書く習慣をつけると、自ずと親子関係が分かり、上達が早いです。
余談ですが、『iRow = 』以下の4行は結果として得られた iRow を
何にも使っていませんね。
iRow 以下の部分はサンプルデータをいくつか組み合わせていたときに残ってしまったみたいです。
オブジェクト名など、自分でわかりやすく記述することで間違えないようになるんですね。大変勉強になりました。
Worksheetなら ws、Workbookならwbにしなくてはいけないのかな?と間違って覚えていました。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 2 2022/11/18 15:34
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBAで他のブックのシートにボタン一つで書込みたい
Excel(エクセル)
-
VBA EXCEL 開かずにデータ操作
その他(Microsoft Office)
-
VBAで複数のブックを開かずに処理する方法
Visual Basic(VBA)
-
-
4
エクセルで別シート、または別ファイルに出力、蓄積保存する方法。 マクロなんかを活用してできないでしょ
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワイルドカード「*」を使うとう...
-
フォルダ内の全てのファイルに...
-
シートをコピーする下記記述で...
-
VBA シート名が一致した場合の...
-
VBA シートをコピーする際に Co...
-
VBAの参照先のファイル名をセル...
-
Excelのマクロについて教えてく...
-
リソース不足を解消したい
-
複数のエクセルブックをひとつ...
-
Excel にて、 リストボックスの...
-
VBA コードを実行すると画面が...
-
【Excel VBA】書き込み先ブック...
-
vba勉強中
-
複数ブックから一つのシートに...
-
任意のブックを開き、任意のシ...
-
別ブックの列同士の値が一致し...
-
拡張メタファイルにて貼り付け
-
VBScriptで自動リンクONでExcel...
-
エクセルのマクロを使ってメー...
-
異なるブック間でのセル範囲の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
(マクロ)データをAブックからB...
-
VBS Bookを閉じるコード
-
VBA 別ブックからコピペしたい...
-
VBA 複数のエクセルから一つの...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】インデックスが有...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
【VBA】全シートの計算式を全て...
-
複数のエクセルブックをひとつ...
-
VBA 実行時エラー 2147024893
-
ExcelのVBAです。フォルダ内の...
おすすめ情報