質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

845閲覧

連番で管理させるには

ichigo15

総合スコア14

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

2クリップ

投稿2020/02/20 07:47

前提・実現したいこと

D列に入力されたらA列に「シート名+連番」が入るようにする

発生している問題・エラーメッセージ

マクロを有効にしてなかったため作業者がのちほどD列をコピーペーストすると連番ではなくなってしまいます

重複する場合が出てきてしまい困っております。

D列をコピーペーストした場合でも連番にする方法はありますでしょうか
ご教授宜しくお願いいたします。

該当のソースコード

一部抜粋でしてます
必要でしたら全文載せます

Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim MyRNG As Range Dim k As Long Dim sn As String Application.EnableEvents = False k = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row sn = ActiveSheet.Name If Not Intersect(Target, Range("D5", Cells(Rows.Count, "D"))) Is Nothing Then For Each MyRNG In Intersect(Target, Range("D5", Cells(Rows.Count, "D"))) If MyRNG.Value = "" Then Cells(MyRNG.Row, "A").Resize(, 3).Value = "" Else If MyRNG.Offset(, -3).Value = "" Then MyRNG.Offset(, -3).Value = sn & k - 10 End If Next MyRNG End If

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sinzou

2020/02/20 08:51

A列は蓄積される? 貼り付けはD5列のみ?    A列からE列まで貼り付けたら   k = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row   貼り付けた最終行なの?
guest

回答2

0

自己解決

色々とご相談にのって頂きましてありがとうございます。
当初とは違うか形での解決になってしまいましたが、マクロが無効の場合は
sheetを開かせないようにいたしました。

最後までお付き合いいただきまして感謝いたします。

投稿2020/02/21 08:06

ichigo15

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ExcelVBA

1Private Sub Worksheet_Change(ByVal Target As Range) 2 If Target.Row < 5 Then Exit Sub 3 If Intersect(Me.Range("D:D"), Target) Is Nothing Then Exit Sub 4 5 Application.EnableEvents = False 6 With Application.Range(Me.Range("A5"), Target.Offset(, -3)) 7 .Cells(1).Value = Me.Name & "_" & 1 8 .Cells(1).AutoFill Destination:=.Cells, Type:=xlFillSeries 9 End With 10 Application.EnableEvents = True 11End Sub

わ。
途中に空白があった場合は、
空白の行を除外して連番ですか?

投稿2020/02/20 08:24

mattuwan

総合スコア2163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ichigo15

2020/02/21 00:40

説明が下手でご迷惑をおかけしております D列を入力するとchangeイベントでA列に「シート名+連番」が入るようにしてます マクロを無効で作業すると「シート名+連番」が入らず、のちの作業に影響が出てきてしまい困っております ですのでD列をコピーペーストするマクロをPrivate Sub Workbook_Open()で実行させたのですがA列が連番にならず重複も出てきてしまいました いっそ無効で開いたらファイルを閉じさせようと思いましたが上手くいきませんでした。 何かよい方法等ございましたら教えてください 宜しくお願いいたします。 10行目が見出し(9行目にはセルの結合があります) シート名が"ああ"の場合        A列    D列を貼り付け後の希望 11行目   ああ1 12行目   空白      →ああ2 13行目   空白      →ああ3 14行目   ああ4 15行目   空白      →ああ5
ichigo15

2020/02/21 08:04

色々と相談にのって頂きましてありがとうございます。 別な方法で無事に解決することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問