VBAのコードについて
入力シートより「1月」シートに転記をしています。
今後は、1月シートでなく月毎(1月・2月・3月.etc...)に入力日を基準として該当シートに転記をしたいと思っていますが、どの様に変更すればいいか参考になりそうなものが見当たりません。
以下が、現在作成中。
Dim i
For i = 4 To Sheets("1月").Range("A10000").End(xlUp).Row + 1
If Sheets("1月").Range("D" & i).Value = "" Then
'Familyから1月に転記
Sheets("1月").Range("D" & i).Value = Sheets("Family").Range("B7").Value
Sheets("1月").Range("E" & i).Value = Sheets("Family").Range("M16").Value
'日付
Sheets("1月").Range("B4").Value = Date
Sheets("1月").Range("B" & i).Value = Date
Exit For
End If
Next 'Familyから転記した内容を消す
Range("B7").MergeArea.ClearContents
Range("B19:R42").ClearContents
'メッセージ
MsgBox "売上登録しました"
("1月")の部分を変えて対応できればと考えておりますが、ご教示いただければ幸甚です。
No.4ベストアンサー
- 回答日時:
こんにちは
「入力日」というのが、今日のことなのか、特定の日として「入力日」が存在するのか不明ですが、とりあえずシリアル値で存在するものとして・・・
以下の例は、
・入力日から「半角数字+"月"」としてシート名に変換
・シートの存在をチェック
・シートが存在すれば、シートオブジェクトを変数に代入
する例です。
dt = DateValue("2021/1/18") ' 仮の「入力日」を設定
'dt = Date ' 「入力日」が今日の意味ならこちらを使用
sName = Format(dt, "m月") ' 日付からシート名を作成
' シートが存在するかチェック
If Evaluate("iserror(" & sName & "!A1)") Then
MsgBox "対応シートがありません" ' シートが無い場合の処理
Else
Set sh = Worksheets(sName) ' シートがあれば変数に代入
End If
ご参考にでもなれば・・・
No.5
- 回答日時:
とある入力作業を行なう日に『〇月のシートに対して』って事をしたいのなら(月初めとかは当月ではなく前月でって場合もあり得るし)、
実は奥が深いInputBox
http://officetanaka.net/excel/vba/tips/tips37.htm
最初に何月のシートを対象としたいのか?を入力させるようにしては如何?
ユーザーフォームを使っているのならComboboxなどで選択って方法もありかもだけど、この場合そうでもないみたいなのにわざわざ使うのも何ですしね。
メソッドの方ならTYPEで数値も選べるので数値入力して貰い、その後に
Worksheets(i & "月")
⇒変数:i は数値型で宣言された物。
と文字を連結させることで文字列になるしね。
No.3
- 回答日時:
こちら無理でした?
見た限りでは可能なんじゃないかなと思いましたが、可不可の判定もないようですし。
No.2
- 回答日時:
SheetsではなくWorksheetsを使ってあげればよいです。
Sheets("1月")
↓
strMonth="1月"
Worksheets(strMonth)
strMonthはString型の変数でシートを参照する前にシート名をセットしてください。
Sheets("1月")
↓
strMonth="1月"
Worksheets(strMonth)
strMonthはString型の変数でシートを参照する前にシート名をセットしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) 前回質問の続きになりますが、下記マクロでシート1からシート2の抽出項目セルB3「りんご」とセルC2「 2 2022/12/02 17:37
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
これが怖いの自分だけ?というものありますか?
人によって怖いもの(恐怖症)ありませんか? 怖いものには、怖くなったきっかけやエピソードがあって聞いてみるとそんな感覚もあるのかと新しい発見があって面白いです。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
【お題】 ・西暦2100年の「小学生のなりたい職業ランキング」で1位になった職業は何か教えてください
-
エクセル:VBAで月変わりで、自動でシートを選択したい
Excel(エクセル)
-
VBA シート名を先月の名前にしたい
Excel(エクセル)
-
VBAで先月、先々月を求める方法
Visual Basic(VBA)
-
-
4
エクセルで、月によって参照するシートを自動的に変える関数
Excel(エクセル)
-
5
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
6
シートを追加・名前を次月に変更、前月内容を貼り付け
Excel(エクセル)
-
7
月が変わったら自動でシートが複製される方法を教えてください。
Visual Basic(VBA)
-
8
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
9
VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
Visual Basic(VBA)
-
10
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
11
Excelで日付変更ごとに、自動的にデータを転記
Excel(エクセル)
-
12
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
13
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
14
エクセルVBA Ifでシート名が合致したら別ファイルから転記する場合のElse IfとForの書き方
Visual Basic(VBA)
-
15
VBAでセルに入っている日付をシート名にする
Excel(エクセル)
-
16
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
17
別のシートから値を取得するとき
Visual Basic(VBA)
-
18
作ったマクロを複数のシートで実行できるようにしたい。
Excel(エクセル)
-
19
InputBoxに入力した言葉をシート名にしたい!
Excel(エクセル)
-
20
ExcelのVBAでフォームが表示されない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IFステートの中にWithステート...
-
特定の文字を含むシートだけマ...
-
ユーザーフォームに入力したデ...
-
同じ作業を複数のシートに実行...
-
ExcelVBA:複数の特定のグラフ...
-
エクセルで通し番号を入れてチ...
-
Excel VBA マクロ 先頭行の固定...
-
VBA 検索して一致したセル...
-
【Excel VBA】Worksheets().Act...
-
エクセルvba シートを順次アク...
-
エクセルVBA 変数への代入がう...
-
エクセルのマクロでアクティブ...
-
excelのマクロで該当処理できな...
-
シート間で同じ値があったら指...
-
XL:BeforeDoubleClickが動かない
-
API関数ImmSetConversionStatus...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
VBAエクセルの非アクティブシー...
-
VBAでシート名を選んで転記する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】全シートのセルの...
-
特定の文字を含むシートだけマ...
-
excelのマクロで該当処理できな...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
VBAで指定シート以外の選択
-
ブック名、シート名を他のモジ...
-
別のシートから値を取得するとき
-
XL:BeforeDoubleClickが動かない
-
IFステートの中にWithステート...
-
エクセル・マクロ シートの非...
-
【Excel VBA】Worksheets().Act...
-
実行時エラー1004「Select メソ...
-
ExcelVBA:複数の特定のグラフ...
-
エクセルのシート名変更で重複...
-
ExcelのVBAのマクロで他のシー...
-
VBA 存在しないシートを選...
-
シートが保護されている状態で...
-
VBA 検索して一致したセル...
おすすめ情報
お世話になります。
ご回答ありがとうございます。
VBA初心者で言葉足らずで申し訳ございません。
入力日=今日
PCの年月日を起点。
入力シート(会計伝票)
上記シートで記載した該当箇所を1月〜12月(売上管理)まで作成した12sheetに転記したいです。
尚、入力シート(会計伝票)と1月〜12月のsheetは同ファイル。
その日にお会計した入力シート(会計伝票)を登録ボタンを押したら該当月のシートに転記させたいです。
今日が2021年1月18日 → 1月シート
今日が2021年2月18日 → 2月シート
今日が2021年7月11日 → 7月シート
2021年1月18日等はPCの右下に出ていると年月日で判断して1月〜12月シートを自動的に選んで転記する事がしたいです。
入力日は、原則今日のみで遡るもしくは未来の日付はないです。
毎日の作業を想定
ご教示頂けますようお願い申し上げます。