- 締切済み
VBA(マクロ初心者)シート名の重複エラーの回避
マクロ初心者です。 test.xlsmというファイルにて マクロを編集し、 ActiveSheet.Name = "コーヒー当番表" で、シート名に名前を"コーヒー当番表"とつけています。 しかし、test_2.xlsというファイルでシート名に既に "コーヒー当番表"と名前がつけられていた場合、 test.xlsmとtest_2.xlsを開いた状態で、 test.xlsmのマクロを実行すると シート名の重複のせいか、実行エラーしてしまいます。 回避するためには、どのようなコードを記述したら良いでしょうか。 御助言ください。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- VBA アクティブなセルのシート名を取得したい
エクセル2010使用です。 VBAで、アクティブなセルのあるシート名を取得する方法を教えてください。 マクロ.xls (マクロシートA1) ←今回のマクロを書き込んだファイル 参照.xls (参照シートA1) 入力.xls (入力シートF3) この3つのエクセルファイルを開きます。 ( )内はそれぞれの前面にあるシート名と選択されたセルです。 入力シートのF3にカーソルをおいて下記マクロを実行すると MsgBox ActiveSheet.Name & ActiveCell.Address 「マクロシート F3」と返されます・・・ ほしい結果は「入力シート F3」なんです。 このような場合にアクティブセルのあるシート名を取得する方法があれば教えてください。 よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- Excel マクロ アクティブシートの指定について
こんにちは。Excelでマクロを作成しています。あるファイルを開きマクロを実行すると、日々エクスポートしているExcelファイルのシートが開き、自動的にそのシートにピボットテーブルを実行し集計するマクロを作成しています。ファイルの指定はファイル名が毎日日付のファイル名(例:02-12等)になるので、[ファイルを開く]ダイアログを表示させ、そこから指定することにしました。ただ、シート名もファイル名と同じなのですが、どうしてもそのシート名でしか作成できません。現在アクティブなシートにピボットを実行するようにするには、どうすればいいでしょうか。 下記に作成したVBを記載しておきます。 Fname = Application.GetOpenFilename(FileFilter:="Excel ファイル (*.xls), *.xls") ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "'02-12'!R1C1:R91C23").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル3", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("ピボットテーブル3").AddFields RowFields:=Array("所属名", _ "受付担当者") ActiveSheet.PivotTables("ピボットテーブル3").PivotFields("状況").Orientation = _ xlDataField ・・・ 上記の02-12の部分がシート名になるのですが、このシート名は毎日変化していきます(次の日は、02-13 など)。どのように作成すればいいでしょうか。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- VBAでシートコピー後、シート名が重複している時の処理
今日からVBAを勉強し始めました初心者です。会社である作業をしており、VBAでの作業がうまくいかなくて困っております。 「実績」というシートを11/5に作ったとします。 このシートを、11/9にマクロを実行した時に、 ・11/5のシートをコピーし複製を作る(この時点ではシート名は「実績(2)」) ・この時、シート名は「11-05」となるように設定済み (実績シートの「G1」セルから、日付を取得しファイル名とする) としています。 この時、まれに同じ日に間違ってマクロを動かす為、同じシート名となりエラーが出てしまいます。 利用者が不慣れなため、エラーの対処方法を教えることでは対処が難しい状態で、できればマクロで対応しようと思っています。 以下、シート名が重複しない場合のみ利用可能なデータです。 '前回作成した「実績」のコピー&リネーム Dim mySheet As Worksheet Set mySheet = ActiveWorkbook.Worksheets("実績") mySheet.Copy after:=Worksheets("実績") '実績sheetの後ろにコピー ActiveSheet.Name = Format(Range("G1").Value, "m-dd") ' シート名を変更する 他の質問を検索しましたが、コピーしたファイルをリネームし、 そのリネーム結果が重複している場合の記述方法がよくかわりませんでした。 重複している場合は、できればメッセージボックスで「yesno」の選択で上書きの選択ができればと思っています。 (VBAでは一度削除してから新規に作るようですが、上の重複のからみで、よくわからなくなっています) よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- XCELのVBAマクロで次のことが実行できますか。
XCELのVBAマクロで次のことが実行できますか。 (前提)WINDOWSで (1)MYDOCのフォルダAにExcelファイルA1.xlsからA9.xlsまで9個のファイルと、もう一つマクロBBの入ったExcelファイルB.xlsがあります。 (2)各Ai.xlsには、Aisheet(i=1カラ9)と名前のsheetが1つのみあります。 (処理したいこと) A1.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 続いて同様にA2.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 以下A9まで実行したい。 (質問)Bのマクロに新たにCCというマクロを作り、CCを実行することで、自動的に(処理したいこと)を実行してしまうようなものを作れますか。 また作るとしたらおおよそどんな風に作ればいいでしょうか。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel2007VBAシートコピーとマクロ保存
●質問の主旨 複数のシートのファイルにおいて最終シートだけをコピーし、 かつそのファイルの標準モジュールも含んだファイルを保存するには、 下記のコードをどのように書き換えたらいいでしょうか? ご存知のかたご教示願います。 ●コード Sub 保存() Dim flname As String flname = "D:\医療週報\VBA試作\" & Format(Date, "yyyy年mm月") & ".xlsx" ActiveSheet.Copy ActiveWorkbook.SaveAs flname ActiveWorkbook.Close End Sub ●質問の補足 1)マクロで「保存」を実行するときは手作業で必ず最終ページを開いています(アクティブにします)。 2)上記コードのうち".xlsx"では最終シートだけをコピーできますが、 マクロの保存ができません。また".xlsm"にするとエラーが出ます。 ".xls"にすると複数のシートが全てコピーされた上に、マクロの保存ができていません。 3)私はVBA初心者です。
- ベストアンサー
- Visual Basic
- エクセルマクロでファイル名やシート名変更できない
エクセルは初心者なのでマクロを自動記録して作成しています。 少しづつ動作を小分けにして記録して、まとめてボタンで連続実行させるようにしました。 (1)作成途中で失敗したら最初からの作業になると思い、 ある程度進んだら何度かファイルのコピーを作成して進めていました。 ある程度完成した時点でファイル名が「○○○4~コピー~」の様な名前だったので、正式に名前を決めて変更したらマクロの実行が出来なくなりました。(元の名前に戻すと実行可能) (2)またシートも複数のシートに跨って参照するようなマクロです。 シート名を分かりやすい名前に変更したらこの場合もマクロ実行できなくなりました。 (3)コピーしたファイルもマクロ実行できないものがあります。 コピーしたファイルはマクロ実行できないのでしょうか? (4)ファイル作成途中で何かの変更が生じて列や行の挿入を行った場合、 特定のセルを参照して計算するマクロは実行できなくなるのでしょうか? その場合、簡単に修正する方法はありますか? 初心者にも分かるような回答をよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルマクロ ファイル名を変更したとき
マクロ初心者です。 データファイルからシートを複写挿入するマクロです。 コピー先ファイル名を都度変更したいのですが、その場合マクロにコピー先ファイル名が入っているのでエラーになります。名前が変わっても実行できるようにするにはどうしたらよいのでしょう? なお、複写元のデータファイルは複写後に閉じます。 Workbooks.Open Filename:="データファイル.xls" Sheets("Sheet1").Copy Before:=Workbooks("コピー先ファイル名.xls").Sheets(1)
- ベストアンサー
- オフィス系ソフト
- マクロ 現在アクティブになっているシート名・・・
いつも回答して頂きありがとうございます。 こんなマクロでも通用するシート名を所得する記述を教えて下さい。 シートを数枚挿入した後に、マクロ実行画面のシートをアクティブにしたい。 この時のマクロ実行画面のシートをマクロの中で色々使おうと思うのですが、マクロ実行画面の名前が日にちになっており、コロコロ変わるので、どうすればよいのか分かりません。宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Excel2000マクロ_大量のシート名を楽に変更するマクロ
何方か、回答を宜しくお願いします。 deta.xls(多数のシートが有る)シート名変換.xls(マクロが書いてある) 上記の2つのファイルが有りますが、やりたいことはdeta.xlsがアクティブの 時にショートカットでマクロAを起動して、シート名変換.xlsの「シート名」と いうシートのA1から下方向にdeta.xlsのシート名を所得する。 そして、マクロ終了後所得したシート名を変えて。 deta.xlsがアクティブの時にマクロBを起動して、「シート名」のA1から下方向に deta.xlsのシート名を変更する。 宜しくお願いします。 下記参考 Sub マクロA() Dim i As Worksheet ThisWorkbook.Worksheets("「シート名」").Columns("A:A").ClearContents '書き込む前にA列のデータをクリア Dim WS As Worksheet For Each WS In Worksheets
- ベストアンサー
- オフィス系ソフト
- シート単体の時のみマクロを有効に。
メニュー画面となる「menu.xls」ファイルと、コードごとの管理の為の「コード.xls」ファイルがあります。 「menu.xls」はシート「メニュー」・「リスト」・「フォーマット」の構成で、この「フォーマット」シートにコードの名前をつけて保存したものが、「コード.xls」となっています。 「フォーマット」シートにはいくつかのVBAを施してあるんですが、これを 「menu.xls」として開くときには実行させず(無効化)、「コード.xls」として開くときには実行(有効化)させたいのです。 現在、「コード.xls」としてシート「フォーマット」を開いた時はマクロがWorkbook_Openで動作してくれて構わないのですが、「menu.xls」として開いた時もシート「フォーマット」のWorkbook_Openが動作してしまい、エラーが出てきてしまいます。 「フォーマット」シートに実行判定を付ければいいのでしょうか? どうしたらいいか全くわかりませんので、ご教授頂きたくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト