VBAマクロ 別ブックからのコピー 連日すみません。 上記の通り処理を行いたくお知恵をお借りしたいです。 やりたいこと

Visual Basic | Excel111閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0

ご丁寧に解説までありがとうございます。 ご指摘の通りB2:M2の範囲の最終行までが正しいです。 こちら実行してみるとコピー範囲の選択まではできるのですが、ここで実行エラー9インデックスが有効範囲にありませんと出てしまい貼り付けができません。 .Worksheets("1").Range("A11").PasteSpecial いろいろと調べてみましたがわかりませんでした。 ここでいうインデックスというのは何を指しているのでしょうか。

その他の回答(1件)

0

まずはざっと見て気になったところを指摘させていただきます。 (※実際に動かしてデバッグしていないので、他にもおかしなところあるかも) 1. 空文字の変数 39行目 >Workbooks(FileName).Worksheets(name).Range(.Cells(2, 14), .Cells(最終行, 14)).Copy ワークシートに使っているnameという変数に何も代入されていません。 2. 貼り付けの処理が見当たらない 40行目 >Workbooks(ThisWorkbook.name).Worksheets("1").Range ("A11") 恐らくここで貼り付けを行いたいのだと思いますので、 Workbooks(ThisWorkbook.name).Worksheets("1").Range ("A11").select Workbooks(ThisWorkbook.name).Worksheets("1").Paste と、してみてはいかがでしょうか? 貼り付け方法によって書き方が変わるので、以下リンクを参考にどうぞ。 https://excel-ubara.com/excelvba1r/EXCELVBA513.html 以下、小言です。 >以前こちらで聞いたものなどを組みあわせてファイルの指定まではできましたが、コピー範囲の取得が上手く行きません。 これは恐らく上記の理由で、39行目でエラーが出たのではありませんか? エラーが出たのならどこでエラーが出たかはっきり書きましょう。 自己解決できるようになるためのアドバイスとして、エラーで止まっているときは、その止まっているときの変数の値を確認することができます。 エディターにはバグを取り除くための機能(いわゆるデバッグ機能)がありますので、ネットでVBAのデバッグ方法を調べてみてください。 例えば、1行ずつ実行(ステップ実行)して各変数がどのように変化していくか確認することもできますので、どこで躓いているか探すことができます。 >可能ならメッセージBOXか何かもっとわかりやすい入力箇所を示してそこに入力してもらったファイル名で検索をしたいです。 ユーザーフォームを追加することで実現可能です。 ですが、実行ボタンはどこかのシートに貼り付けているのですよね? それならエクセルの機能であるシートの保護とセルのロックを使用して、シートをフォームのようにしてはいかがでしょうか。 セルの選択すら出来ないように設定したり出来ます。 フォームを作るやり方とシートの保護のやり方も知っている私ですが、後者のほうが実装が早く済むので、仕事ではもっぱら後者でやりますね。 後、デザインが気に入らなくてRange("M1")をRange("M2")に変更したりして、バグが発生したり面倒に感じたりすると思いますが、セルに名前をつけるようにすれば、Range("付けた名前")といった具合にプログラムは変更せずともセルの名前を付ける場所さえ変えれば良くなったりします。

ご回答ありがとうございます。 こちらを使用してもコピー範囲の選択まではできるのですが、実行エラー9インデックスが有効範囲にありませんと出てしまい貼り付けができません。 Workbooks(ThisWorkbook.name).Worksheets("1").Range ("A11").select Workbooks(ThisWorkbook.name).Worksheets("1").Paste A11が選択できていないということでしょうか。