- ベストアンサー
他のブックに貼付けがうまくできません(結合セルあり)
- 他のブックに貼付けがうまくできない問題が発生しています。セルの結合を解除し、値を貼り付ける作業を行っていますが、エラー9が発生しています。
- 資料を作成するために、一覧表から1件の情報を選んで配布資料を作成しています。配布資料はテンプレートをコピーして使っています。
- 構成一覧表から選択したセルの情報をコピーしたファイルに貼り付けています。また、セルの結合を解除し、内容を転記しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>エラー9が出てデバッグします エラーが出たらその番号だけではなく、メッセージ それに、どのコードで出たかも書かないといけません。 ま、それは置いといて、、、 No9は、インデックスが云々、ですから、 指定したブック名、シート名が見当たらないということです。 コードを眺めたところおかしいところはないので、ちょこっと試してみました。 なーーーーーーんと、コピーし、オープンされた”仮.xls”のブック名が、 テンプレートを開いたときのように、【仮1.xls】と番号が振られてました。 で、Openされたブックはアクティブになるので 次のように、ActiveWorkBooブックを使うか、ブックオブジェクトを省いてみましょう。 また、値のコピーではなく、値を代入してるだけですから、結合セルの解除などは必要ありません。 そこらを含め不必要なコードは削除してあります。 '------------------------------------------ Sub 構成表から資料を作成する() Dim i As Variant Dim シート名 As Variant Dim NewName As Variant シート名 = ActiveSheet.Name i = ActiveCell.Row NewName = "C:\Documents and Settings\498\デスクトップ\仮.xls" FileCopy "\\arc\DATA\ファイル管理\資料\PartsList.xlt", NewName Workbooks.Open FileName:=NewName '●これで仮ブックはアクティブになる Worksheets("PartsList").Range("A2") = Workbooks("構成一覧表.xls").Worksheets(シート名).Cells(i, 16) End Sub '------------------------------------------------ また、コードで仮ブックを保存、終了させる場合は Application.DisplayAlerts = False ActiveWorkbook.SaveAs NewName Application.DisplayAlerts = True ActiveWorkbook.Close とします。 Application.DisplayAlerts は必須です。 それから、一番いいのは次のように仮ブックをオブジェクト変数にセットして使う方法です。 Dim NewBook As WorkBook Set NewBook = Workbooks.Open(FileName:=NewName) NewBook.Worksheet("PartsList").Range。。。。。。。。 とか NewBook.Close などとして使用する。 以上です。
お礼
説明不足な点までフォローしていただいて、ありがとうございます。 理解しやすいように、とてもわかりやすくアドバイスをいただけて 感謝で涙が出そうです。 「なーーーーーーんと、コピーし、オープンされた”仮.xls”のブック名が、 テンプレートを開いたときのように、【仮1.xls】と番号が振られてました。」 という点、私も気がついて、ワークブックの指定に仮1としてみたりいろんなパターンを試してみたのですが、だめでした。 でもアドバイスいただけて助かりました。 今は他の仕事がきてしまって、すぐには実践できませんが 後ほど試します。 どうもありがとうございました。