- ベストアンサー
VBA初心者のためのリスク分析ファイル作成プログラム
- VBAを使用して複数のシートからデータを取得し、新しいリスク分析ファイルを作成するプログラムの実行中に発生しているエラー「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」の原因を教えてください。
- 質問者は、リスク分析ファイルを作成するプログラムを実行しようとしていますが、新しいシートを追加する処理でプログラムが停止してしまいます。原因を教えてください。
- VBA初心者が複数のシートからデータを取得し、リスク分析ファイルを自動作成するプログラムを作成していますが、新しいシートを追加する処理でエラーが発生しています。エラーの原因を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1でご指摘の外にもWorksheetsをWorksheetとしている個所が数箇所ある。 このブックの、ワークシートのコレクションというものなので、Worksheetsです。ブックも同じく Workbooksです。オブジェクトのコレクションと言うものを勉強すること。 コレクションの特定は 名前 インデックス番号 その他 Active・・やシートではPrevious、Next(ActiveSheet.Previous など)が使える。LastはなくSheets(ActiveWorkbook.Sheets.Count)で代用する。 ーーー この方法(ActiveWorkbook.Sheets.Count)で代用できるから span などの変数を使わなくても良いと思う。 使うとコードが冗長になる。この場合はわかりやすくなるともいえない。ActiveWorkbook.Sheets.Countのほうが意味を推測しやすい。 ーー ”リスク分析”ファイルなどと難しそうに銘打っているが、(たまたまそういうことに使うデータで会っただけでしょう)質問の場合は、1つのブックと言うことで、説明して良いのでは。読む方は何かと身構えるがリスク分析そのものと関係ないでしょう。。 ここでやっているのがファイルのコピーと日付を入れた名前づけだけではないですか。質問ももっとかんたんになり、コードも短く出来るように思った。
その他の回答 (1)
- kmetu
- ベストアンサー率41% (562/1346)
portname = Workbooks("Book2").Worksheet(2).Cells(portfolio, 3) 'ラベルAの名前を定義 Worksheet(2) Worksheets(2) です。 デバッグでステップイン実行すれば容易に分かるところですよ。
お礼
ありがとうございます。無事解決いたしました。 >デバッグでステップイン実行すれば容易に分かるところですよ。 このような基本動作も使用せずに質問してしまいました、申し訳ございません。
お礼
ご対応、及びご指摘ありがとうございました。 プロージャーをそのまま貼り付けたことでわかりずらくなったことは確かです。申し訳ございません。 時間がなかったことと、意外なところに問題があるのではと考え、そのまま貼り付けました。