No.5ベストアンサー
- 回答日時:
ほぼ、要件が確認できましたので、最終確認です。
1)シート名は、必ず青字の文字と一致する必要がありますが、それで良いでしょうか。
地区名=貝塚西 の場合、シート名=貝塚西 でなくてはいけません。シート名=貝塚 はNGです。
マクロは、地区名からシート名を決定しますので、完全に一致しないと不都合が発生します。
(人間はシート名=貝塚 でも判断可能ですが、そのようなあいまいなことを考慮して良きに計らうことをマクロはできません)
地区名=阪堺・その他 の場合もシート名=阪堺・その他 となります。
2)今回、追加された行をその地区の最後に反映するということですが、厳密にいうと、その行のみを処理することは難しいです。
そのシートが更新されたイベントを検知してその行を処理するとき、それが、追加された行なのか、(一旦登録した後で)修正された行なのかを
判断することができません。そのために、以下のような方法をとりますが、それでよろしいでしょうか。
①データを追加した後で、こちらから提示したマクロを明示的にあなたが実行する。
②マクロは、Sheet1の内容を全件(全地区分)処理する。(各地区のシートにデータを振り分ける)
従って、以前追加したものは、各地区のシートに上書きされます。結果的に、今回追加したぶんが、新しく追加されたようになります。
尚、追加データが複数ある場合は、Sheet1に追加データを全て書き込んだ後で、1回マクロを実行すれば、全て追加分が反映されるようになります。
(1件追加毎にマクロを呼び出す必要はありません)
2)上記のことを正しく実行する為には、Sheet1は、以下のようになっている必要がありますが宜しいでしょうか。
①各地区の最初には地区名(青字部分)が存在する。
②その地区内のデータ(黒字部分)が、その次の行から始まる。
③地区が変わる場合は、必ず、空白行が1行以上存在する。
3)地区名に対応したシートが必ず存在することが前提です。
Sheet1に新規に地区名が追加された場合は、その地区のシート(空のシート)も追加しておく必要がありますが宜しいでしょうか。
ご連絡が遅くなりましてすみませんでした。本当に無作法な私に根気よく対応してくださり、さらに私がおそらくつまづくであろう点もご考慮くださいまして本当にありがとうございました。
年度が切り替わったところからの一からの作成となったため、この条件をそのまま使えることになりました。
今後ともどうぞよろしくお願いいたします。
No.6
- 回答日時:
>あと、ひとつ確認なんですが
>①データを追加した後で、こちらから提示したマクロを明示的にあなたが実行する。というのは
>2)と3)の状態にしたデータが完了したらtatsu99様に再度お知らせさせていただくということでよろしかったでしょうか。よろしくお願いいたします。
いえ、そうではなくて、私が提供するをあなたが実行するということです。
以下のマクロを標準モジュールに登録してください。
-----------------------------------------------------------
Option Explicit
Public Sub 各地区シートへ反映()
Dim sh As Worksheet
Dim ws As Worksheet
Dim row As Long
Dim row2 As Long
Dim maxrow As Long
Dim tiku As String
Set sh = Worksheets("Sheet1")
maxrow = sh.Cells(Rows.Count, 1).End(xlUp).row '最終行の取得
tiku = ""
'先頭から最終行まで繰り返す
For row = 1 To maxrow
If sh.Cells(row, "A").Value = "" Then
tiku = ""
Else
If tiku = "" Then
'地区の先頭(地区名)
tiku = sh.Cells(row, "A").Value
Set ws = Worksheets(tiku)
ws.Cells.Clear
sh.Range("A" & row).Copy ws.Range("A1")
row2 = 2
Else
'地区のデータ
sh.Range("A" & row & ":D" & row).Copy ws.Range("A" & row2 & ":D" & row2)
row2 = row2 + 1
End If
End If
Next
MsgBox ("完了")
End Sub
----------------------------------------------
手順としては、
①このマクロをそのブックの標準モジュールに登録
②Sheet1へデータを追加
③このマクロの実行
となります。
②は問題ないので、不明点があるとすれば、①③かと思います。
もし、①③で不明点があれば補足してください。
No.4
- 回答日時:
No3です。
各地区のシートの画像は1地区あれば十分ですので、それ以上は提示不要です。ありがとうございました。いま、問題点をまとめていますので、しばらくお待ちください。
No.3
- 回答日時:
No2です。
私が、お願いしているのは、
2)各地区名のSheetの画像の提示
3)Sheet1のどこに、何を入力すると、どの各地区のシートにどのように反映したいのかを具体的に提示
です。(Sheet1の赤字の箇所が、入力したデータで、それを反映したいように見えますが、よく読めません。)
Sheet1の6行目を各地区名のSheetに反映したいということでしょうか。
各地区名はA列ですか。そのA列の内容が各地区名のSheet名になっているのですか。
E~Hに書いてある赤い文字が読めません。なんて書いてありますか。
提示してほしいのは、そのような情報です。
1)Sheet1の画像の提示は、既に提示されているので、2)3)をお願いしています。
No.2
- 回答日時:
No1です。
私がお願いした補足要求は、1)Sheet1の画像の提示
2)各地区名のSheetの画像の提示
3)Sheet1のどこに、何を入力すると、どの各地区のシートにどのように反映したいのかを具体的に提示
の3つです。
1)は補足されましたが、2)3)についてはまだ補足されていません。
No.1
- 回答日時:
すみません。
画像が小さすぎて良くわかりません。Sheet1の画像と各地区名のSheetの画像を別々に提示してください。(そうすると大きな画像になります)
また、Sheet1にどこに、何を入力すると、どの各地区のシートにどのように反映したいのかも、具体的に書いてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
- Excel(エクセル) Excel 関数 vlookupなどの使い方について質問です。 シート1に品番、商品名、単価、発注条 6 2022/06/15 19:16
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Google Drive Googleスプレッドシートについて質問です。 今作っているデータで、 シート1→ベタ打ちでひたすら 2 2022/05/18 14:27
- Excel(エクセル) Excel関数について質問です。 シート1に入力シートがあります。 =A1 =B1などで離れた数字な 5 2022/12/18 13:42
- Excel(エクセル) エクセル VBAでBook モジュールのプロシージァ(コード)に除外シートを設定したい 1 2023/01/11 15:53
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
【ExcelVBA】全シートのセルの...
-
セルの値によって、シート見出...
-
エクセルのシート名変更で重複...
-
VBA 検索して一致したセル...
-
シートが保護されている状態で...
-
ExcelVBA シート名を複数セルか...
-
ブック名、シート名を他のモジ...
-
エクセルで特定のシートのみ自...
-
Excel マクロについての相談
-
エクセル・マクロ シートの非...
-
エクセルのマクロについて教え...
-
実行時エラー1004「Select メソ...
-
vbaで複数のキーを元に集計する...
-
エクセル マクロのこの意味教えて
-
ExcelのVBAコードについて教え...
-
エクセルのマクロについて教え...
-
XL:BeforeDoubleClickが動かない
-
エクセル vbaにて 他シート(複...
-
【Excel VBA】シート表示、非表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
実行時エラー'1004': WorkSheet...
-
ExcelVBA シート名を複数セルか...
-
XL:BeforeDoubleClickが動かない
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報
失礼しました。早速訂正して再度添付させていただきます。
よろしくお願いいたします。
すみませんでした。よく読んでいませんでした。
sheet1の内容を修正しましたのでもう一度添付いたします。
2)各地区ごとのシート 貝塚西を添付します。
3)貼り付けたいデータはsheet1の各地区の一番下の行に行を挿入してデータ(地区名・名前・住所・電話番号)を入力します。
泉佐野・阪堺も同じように地区ごとの一番下の行に挿入して入れたものを反映させたいのです。
・E~Hには「←追加は各地区ごとの一番下へ行挿入します。」と入力しています。
読めていると勘違いしてい待っていました。たびたびスミマセン。
・各地区名はA列です。そのA列の内容が地区名のsheet名になっています。
・Sheet1の6行名 貝塚西 田中隆さんの情報は貝塚のsheetだけに反映させSheet1と同様に6行目に反映させたいです。
各地区のシートですが、複数添付する方法がわからないので泉佐野を先に添付します。
阪堺・その他のシートです。よろしくお願いいたします。
書き忘れていました。貝塚西のシートに入力したコメントは「←Sheet1に追加された分」です(^_^;)
Sheet1の各地区の行に挿入して追加した地区名・名前・住所・電話番号は貝塚西なら貝塚西のシートだけに。泉佐野の地区名の下に挿入追加したデータは泉佐野のシートだけに反映させたいです。
ありがとうございます。私の言葉不足もあり、本当にお手数をおかけしてしまってもうしわけありません。マクロって具体的にしないとダメなんですね。
この内容でお願いいたします。
あと、ひとつ確認なんですが
①データを追加した後で、こちらから提示したマクロを明示的にあなたが実行する。というのは
2)と3)の状態にしたデータが完了したらtatsu99様に再度お知らせさせていただくということでよろしかったでしょうか。よろしくお願いいたします。