• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAの質問です。(初心者です。。。))

VBA初心者のためのリスク分析ファイル作成プログラム

このQ&Aのポイント
  • VBAを使用して複数のシートからデータを取得し、新しいリスク分析ファイルを作成するプログラムの実行中に発生しているエラー「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」の原因を教えてください。
  • 質問者は、リスク分析ファイルを作成するプログラムを実行しようとしていますが、新しいシートを追加する処理でプログラムが停止してしまいます。原因を教えてください。
  • VBA初心者が複数のシートからデータを取得し、リスク分析ファイルを自動作成するプログラムを作成していますが、新しいシートを追加する処理でエラーが発生しています。エラーの原因を教えてください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1でご指摘の外にもWorksheetsをWorksheetとしている個所が数箇所ある。 このブックの、ワークシートのコレクションというものなので、Worksheetsです。ブックも同じく Workbooksです。オブジェクトのコレクションと言うものを勉強すること。 コレクションの特定は 名前 インデックス番号 その他 Active・・やシートではPrevious、Next(ActiveSheet.Previous など)が使える。LastはなくSheets(ActiveWorkbook.Sheets.Count)で代用する。 ーーー この方法(ActiveWorkbook.Sheets.Count)で代用できるから span などの変数を使わなくても良いと思う。 使うとコードが冗長になる。この場合はわかりやすくなるともいえない。ActiveWorkbook.Sheets.Countのほうが意味を推測しやすい。 ーー ”リスク分析”ファイルなどと難しそうに銘打っているが、(たまたまそういうことに使うデータで会っただけでしょう)質問の場合は、1つのブックと言うことで、説明して良いのでは。読む方は何かと身構えるがリスク分析そのものと関係ないでしょう。。 ここでやっているのがファイルのコピーと日付を入れた名前づけだけではないですか。質問ももっとかんたんになり、コードも短く出来るように思った。

kobaya41
質問者

お礼

ご対応、及びご指摘ありがとうございました。 プロージャーをそのまま貼り付けたことでわかりずらくなったことは確かです。申し訳ございません。 時間がなかったことと、意外なところに問題があるのではと考え、そのまま貼り付けました。

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

portname = Workbooks("Book2").Worksheet(2).Cells(portfolio, 3) 'ラベルAの名前を定義 Worksheet(2) Worksheets(2) です。 デバッグでステップイン実行すれば容易に分かるところですよ。

kobaya41
質問者

お礼

ありがとうございます。無事解決いたしました。 >デバッグでステップイン実行すれば容易に分かるところですよ。 このような基本動作も使用せずに質問してしまいました、申し訳ございません。