前提・実現したいこと
Set ws1 = Sheet1("一覧") の部分に「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」というエラーの矢印が出て、調べたのですが解決できなかったため、どうすれば解決できるのかコード付きで質問させていただきました。"一覧"シートにあるそれぞれの人物の情報を"紹介"シートに反映させ、1人につき1つのExcelファイルへ情報を反映した"紹介"シートを保存するマクロを作りたいです。ただしマクロ実行時、上記の画像の[Excel 一括保存][PDF 一括保存]にコマンドボタンを置き、実行します。Excelのファイルの保存は任意の場所でファイル名は"所属_氏名"です。
Sub 一括保存() Dim ws1 As Worksheet '変数宣言 Dim ws2 As Worksheet '変数宣言 Set ws1 = Sheet1("一覧") '変数ws1にシート[一覧]を代入 Set ws2 = Sheet2("紹介") '変数ws2にシート[紹介]を代入 Dim wb As Workbook, Target As String Dim i '変数宣言 For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Target = Cells(i, 1) ws2.Name = Target ws2.Copy 'シート[紹介]を別ブックとしてコピー ActiveWorkbook.SaveAs "C:\紹介.xlsx" ActiveWorkbook.Close Next i End Sub
なんで自分でやらない?
ここは課題代行ではないです。
せめてその手のところに『カネを払って』やってもらいましょう。
自分は努力せず、他人に無報酬で労力を強いる。
その上、『なる早で』。
赤の他人を舐めすぎ。
同じことを他人にされて『わかりました。引き受けましょう』となるのでしょうか。
そんな聖人君子様なら丸投げな上に『なる早で』なんてやりません。
つまり『あまりにも身勝手』。
まずは自分なりにやって、コード等を提示しましょう。
> 明日の午後には提出しなければいけないため
課題か業務か分かりませんが正直に「出来ませんでした」と伝えた方が良いのではないですか?
[推奨していない質問] https://teratail.com/help/avoid-asking
> コードをください・デバッグしてください等の丸投げの質問
何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。
ちゃんと「一覧」という名前のシートがありますか?
それと Sheet1( "一覧" ) ではなく、Sheets( "一覧" ) では?
はい、「一覧」という名前のシートはあります。Sheet1をSheetsに変えた所、「実行エラー'1004':'Name'メソッドは失敗しました:'_Worksheet'オブジェクト」と出ました。
「一覧」シートはアクティブブックに存在していますか?
はい、「一覧」は現在表示しているExcelブックに存在しています。
少し変えたりして上記のコードに戻すと「SubまたはFunctionが定義されていません。」というエラー文が出ました。
前提の確認なんですけど、本当に「Excel」ですよね?
OpenOfficeとかOpenLibreとかもあるようなので。
はい、Excelです。
回答1件
あなたの回答
tips
プレビュー