![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
一つのブックに、シート”入力票”及びシート”様式”があるとします。
入力票にデータ入力することで様式に反映(様式は日付ごとに別シートが生成)されるようなものをイメージしています。
入力票B3セルには日付が入力([Ctr]+[;]で)されるとします。
日付が入力されたのち、入力票上に別途作成されたコマンドボタンを押下すると、シート”様式”がコピーされ、シート名を入力票のB3セルに入力された日付(月日のみで表示)として生成される処理をご教示願います。
シート様式は、原本扱いなので、そのまま残ります。
VBA初心者でマクロの記録では作成できたのですが、汎用性のあるコードに修正できず苦労しております。
No.2ベストアンサー
- 回答日時:
>入力票にデータ入力することで様式に反映
ここについては、マクロの記録で作成されているとして
>入力票上に別途作成されたコマンドボタンを押下すると、シート”様式”がコピーされ、シート名を入力票のB3セルに入力された日付(月日のみで表示)として生成される処理
Private Sub CommandButton1_Click()
Dim nShtName As String
'入力チェック
If Sheets("入力票").Range("B3") = "" Then MsgBox ("日付を入力してください"): Exit Sub
'----
'出力用データの作成
With Sheets("入力票")
' 変数 = データ
' 配列など = データ群
End With
'様式シートを複製
nShtName = Format(Sheets("入力票").Range("B3"), "m月d日")
Worksheets("様式").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = nShtName
'----
'出力(書き込み)
With Sheets(nShtName)
' データ = 変数
' データ群 = 配列など
' .Range = Sheets("入力票").Range
End With
End Sub
どの部分に記録で作成したマクロを入れるかですが、
サンプルの様にデータ作成と書き込みに処理を分ける事が難しいようであれば、
'様式シートを複製の前に
念のため 様式シートの入力箇所をクリアー
'様式シートに入力票シートの内容を入力して、(記録で作成されマクロ)
様式シートを複製 のような手順になるかと思います。
様式シートに入力票シートの内容を入力は、
シートイベントなどで都度、様式シートに値を入れていくのも良いのですが
数式での参照は、コピーされてしまうので不具合の元です。
様式シートには、他のシートを参照する関数式などは禁物ですよ。
No.1
- 回答日時:
自身もコード見ないと何とも言えませんが、
1)シートのコピー
2)その後にシート名を変える
その仕様のマクロを自動記録で作ります。
たぶん、手動でシート名を変えるマクロのところで、新しいシート名が読み取られると思います。””(ダブルコーテーション)でくくって出ます。
その前の命令で
シート名=Range(”B3”)
と一行挿入
新しいシート名のところを「シート名」に置き換えればできないでしょうか。
(VBAコードが提示されていないので、イメージでしかコメントできませんが…。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) 翌日にお休み予定の従業員がいる場合にアラートを出したい 1 2023/07/11 11:18
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) 再質問です。エクセルでシートが1から31まであり、日付けが入力されているセルがあります。シート1から 4 2022/08/02 23:08
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel ハイパーリンク先のセル...
-
エクセル自動の年月
-
エクセルで入力シートから別シ...
-
該当するデータを書式設定ごと...
-
VBA セルの値と同じ名前のシー...
-
Excel日付変更との参照先の連動
-
Excelの中央値の複数条件について
-
VBAでシート名をセルから取得し...
-
ピボットテーブルから抽出デー...
-
エクセルのワークシートが重く...
-
質問:特定文字列から空白行ま...
-
エクセル1のワークシートで1ペ...
-
ExcelVBAで、指定したシートに...
-
Excel:グラフの元データをグル...
-
EXCELで日毎の価格変動をグラフ...
-
エクセルの複数ページでのグラ...
-
エクセルにて、シート間でデー...
-
Excelファイルサイズが大容量に...
-
エクセル:複数シートのデータ...
-
テキストボックス内の文字のふ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
Excel 複数のシートからグラフ...
-
Excelの中央値の複数条件について
-
エクセル シフト勤務表から、...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルのワークシートが重く...
-
ExcelVBAで、指定したシートに...
-
VBA セルの値と同じ名前のシー...
-
Excel ハイパーリンク先のセル...
-
エクセル自動の年月
-
VBAのoffsetの動き方について教...
-
エクセルで入力→日付を自動判別...
-
エクセルVBA:表の内容を担当者...
-
エクセル マクロを使って日々...
-
エクセルについて質問です 日付...
-
ピボットテーブルから抽出デー...
-
VBAでシート名をセルから取得し...
-
Excelの選択肢をポップアップリ...
-
VBAを利用しオートフィルタで日...
-
Excel日付変更との参照先の連動
おすすめ情報