• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCLの自動マクロ記録を簡潔に編集をお願いします。)

EXCLの自動マクロ記録について

このQ&Aのポイント
  • EXCLの自動マクロ記録を簡潔に編集する方法について教えてください。
  • 収支会計.XLSの売上台帳のシートを別ファイル確定申告2.xlsの売上作業範囲シートに貼り付けるために自動マクロを記録しましたが、動作が重くスムーズに動かす方法はありますか?
  • 売上台帳のデータを確定申告書に貼り付けるための自動マクロの編集方法を教えてください。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

こんにちは。 別に問題ないですよ。 実行時エラー 9 インデックスが有効範囲にありません。 はこの場合「そんなシートは無い」を意味しますので、シート名の指定が間違っているのでしょう。 売上台帳作業範囲(2) 売上台帳作業範囲(2) 売上台帳作業範囲(2) 売上台帳作業範囲 (2) 上記は似ていても全部違います。 シートタブで右クリックし、名前の変更で選択状態にしてから Ctrl + Cキー でコピーし、VBE画面で Ctrl + Vキーで貼付けしてみては? Workbooks("収支会計.XLS").Sheets("売上台帳").Range("D5:H1004").Copy _ Destination:=Workbooks("確定申告2.xls").Sheets("売上台帳作業範囲(2)").Range("B2")

makotoky
質問者

お礼

再度 ご指導ありがとうございました Ctrl + Cキー でコピーし、VBE画面で Ctrl + Vキーで貼付けしてみては? は気がつきませんでした。 実は右クリツクでコピーが出来ないのであきらめて、 仕方が無いので 自動マクロでシート名書き出し コピーペーストしました。 F8とも いらない構文を削除しすっきりしました。 早速他のファイルの同じような部分直してみました。 無事解決しましたが、これはかなりの知識が要りそうですね。

その他の回答 (2)

回答No.2

はじめまして。 私でよろしければ、さほど難しくないようですのであなた様がおやりになりたいことが自動でできるマクロを作ってみたいと思います。 もしご希望の節は、あなた様のおやりになりたいことを具体的に詳しくお知らせ下さい。 お手数をおかけいたします。よろしくお願いいたします。

makotoky
質問者

お礼

早々 ご回答ありがとうございます。 ANO。#1の方の方法でとりあえず解決しました。 いずれにしても 日ごろあまに踏み込まない分野なので未知数が多く 少し勉強しながらやってみたいと思います。 ネット上で参考になるところがありましたら情報をお願いします。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 自動記録は不要なコードも吐出します。、 ほぼやった通りの順番に記述されているだけですから、少しご自分でも考えて見ると上達しますよ。 例えば、 Application.Left = 20.8 はアプリケーションを左に20.8 ActiveWindow.SmallScroll Down:=-55 はアクティブウィンドウを-55スクロール こんな記述はいらないと解かるでしょう。 VBEウィンドウとExcelウィンドウを並べて、デバック-ステップインでF8キーを押して行くと動作を見ながら確認出来ますよ。 ちなみに手っ取り早いのは、先頭に Application.ScreenUpdating = False を入れるだけです。 あと、下は改良版です。 お望みの動作になるかは不明なので、テスト環境でどうぞ。 Sub 売り上げ書き込み() ' ' 売り上げ書き込み Macro ' Range("A2:F251").Select 'Selection.Delete Shift:=xlUp  Application.ScreenUpdating = False  Workbooks("収支会計.XLS").Sheets("売上台帳").Range("D5:H1004").Copy _   Destination:=Workbooks("確定申告2.xls").ActiveSheet.Range("B2")  Workbooks("収支会計.XLS").Sheets("売上台帳").Range("C5:C430").Copy _   Destination:=Workbooks("確定申告2.xls").ActiveSheet.Range("A2")  Application.CutCopyMode = False  Range("H8").Select End Sub

makotoky
質問者

お礼

早々 ご回答ありがとうございます。 さっそくやったところ、スムーズになりました。 ありがとうございます。日ごろあまに踏み込まない分野なので未知数が多く今後もよろしくお願いします

makotoky
質問者

補足

早々ご回答 ありがとうございます。 Workbooks("収支会計.XLS").Sheets("売上台帳").Range("D5:H1004").Copy _   Destination:=Workbooks("確定申告2.xls").ActiveSheet.Range("B2") 貼り付け場所をActiveSheetではなくて Workbooks("確定申告2.xls").Sheets("売上台帳作業範囲(2)")としたいのですが 構文が変わってしまうでしょうか? エラー 9が出てしまいます。 すみませんが 宜しくご指導お願いします。