こんばんわ、EXCELマクロ入門者です。
excelの関数かマクロ、VBAで日付や、連番を付けたいです。
できれば関数でできたらなぁと思います。マクロ、VBAはほとんど初めてです。
(1)まず、B2に商品名を入れます。
(2)すると、A2に連番、C2に今日の日付(システム日付)、
D2に商品名と今日の日付、商品ごとの連番が自動的に振っていく感じにしたいです。毎日たくさん入力するらしいのでマクロとかVBAとか関数で作ってくれと頼まれました。
A列は例えばA3に=if(B3="","",A2+1)を入れて何とかできたのですが、
C列の日付(today関数やnow関数ではファイルを開き直すと日付が変わってしまう)とD列の商品名-日付-商品ごとの連番で特に困っています。
イメージとしては下のような感じです。
A B C D
1 連番 商品名 日付 商品名-日付-商品ごとの連番
2 1 ○○○ 2007/8/10 ○○○-2007/8/10-1
3 2 ××× 2007/8/12 ×××-2007/8/12-1
4 3 △△△ 2007/8/13 △△△-2007/8/13-1
5 4 ○○○ 2007/8/15 ○○○-2007/8/15-2
6 5 ○○○ 2007/8/16 ○○○-2007/8/16-3
どなたか、ご教授ください。
どうぞ、宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
>C2に今日の日付(システム日付)
を入れるのであれば関数では実現できません。VBA(マクロ)が必要になります。
でもB列の日付、D列の商品・日付・連番までVBAで書き込むのはうまい方法とは言えません(理由は後述)。VBAでは日付だけ書き込んで、A列、D列は関数で表示させるのが良いと思います
B列の値が変更されたとき、C列に日付を書き込むマクロは以下です。このマクロはデータを入力するシートの「シート名右クリック」→「コードの表示」で開く画面に貼り付けてください
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:B65536")) Is Nothing Then
If Target.Cells(1, 1).Value = "" Then
Target.Offset(, 1) = ""
Else
Target.Offset(, 1) = Date
End If
End If
End Sub
A2セルの関数式は
=IF(B2="","",ROW()-1)
D2セルの関数式は
=IF(B2="","",B2&"-"&TEXT(C2,"YYYY/MM/DD")&"-"&SUMPRODUCT((B$2:B2=B2)*(C$2:C2=C2)))
A2,D2ともに下方向にコピーしてください
補足
VBAでシートのSelection_Changeイベントを使って、「B列が変更されたらA列、D列にデータを書き込む」のは簡単にできます。
でも10行目までデータを入力した後、2行目に戻って商品名を直したらどうなりますか?
VBAで2行目の連番はふり直されますが、3行目~10行目の連番ふり直しは普通しません。(毎回全行のふり直しをするようVBAを書けば別ですが、普通そんな無駄な処理にはしないでしょう)
ですから特にD列のデータ書き込みはVBAではなく、シートの値によって自動的に更新される関数式の方がよいのです
No.1
- 回答日時:
こんなんでよいでしょうか?
連番と日付を入力し、D列にジャンプするようにしています。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Cells(Target.Row, 3).Value = Date
Cells(Target.Row, 1) = "=row()"
Cells(Target.Row, 4).Select
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Visual Basic(VBA) Sheet1の出荷日と品名が並んだ表からSheet2の品名別出荷日別の個数一覧表を作っています。 オ 3 2022/12/01 23:54
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Excel(エクセル) Excelのマクロを教えていただけないでしょうか? 1 2023/07/06 19:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル②
-
【マクロ】顧客番号にて一致さ...
-
エクセルVBA、別ブックへ転記す...
-
vba Bookを最小にせずに、UserF...
-
エクセルの計算
-
(マクロ)データをAブックからB...
-
Excelでセルの値が同じか...
-
指定文字の間に
-
エクセルでの作業計算方法について
-
エクセルの暗号化なしのバーの...
-
エクセルを使っていて2024/5/15...
-
【マクロ】必要な項目(列)の...
-
エクセル:一覧表に存在する文...
-
Excel
-
エクセル関数を教えてください
-
Googleスプレッドシートでファ...
-
Microsoft 365の Excel を使用...
-
はがきについて。
-
エクセルで 例えば 伊藤と名前...
-
【マクロ】その時、その時で変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報