ここから本文です

Excel VBAについて質問です。 下記の場合、どのようなマクロを組めば良いのか ...

boo********さん

2017/8/1514:24:28

Excel VBAについて質問です。

下記の場合、どのようなマクロを組めば良いのか
わかる方いらっしゃいましたらご教授ください。

添付のような
【表1】
A列に 住所(全体)B列に 住所

(都道府県のみ)C列に 住所(都道府県以降)
D列からは日付が入っており、出荷する日のセルに●が入ります。

【表2】
作りは表1とほとんど変わりませんがD列に時間、E列にタイプの列があります。

★【表2の途中】
今回質問したいのはこの部分で、最終的にはこの途中の表を
表2に変換し、表1と同じ形式の新しいシートで
表1と表2の住所の重複を確認し、重複しないように住所列に貼付をし
更にその住所の出荷日(右側の日付部分)を表1と表2の情報を合体させたものを貼付したいです。

表2の途中の開始日と終了日は「●●●●年△△月■■日」という形式で統一されています。

宜しくお願い致します

Excel VBA,都道府県,住所,sh3.Range,A&quot,sh2.Range,With sh1

閲覧数:
85
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

kky********さん

2017/8/1516:12:03

やはり全てを一つのプログラムとして質問した方が、回答者にはわかりやすいと思います。
前の質問を見ていて、途中まで作成していたので参考までに回答します。

途中というのがSheet2でSheet3に作成します。
Sheet1になくてSheet2だけにある住所というのは存在しますか?
Sheet1を正として、それは考慮していません。
もしそれも必要なら返信して下さい。

Sub Sample()
Dim sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet
Dim i As Long
Dim j As Long, jmax As Long
Dim k As Long
Dim rng As Range
Dim chk As Variant
Application.ScreenUpdating = False
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
Set sh3 = Worksheets("Sheet3")
sh3.UsedRange.ClearContents
With sh1
jmax = .Cells(1, Columns.Count).End(xlToLeft).Column
.Range(.Cells(1, 4), .Cells(2, jmax)).Copy Destination:=sh3.Range("F1")
End With
With sh2
.Range("A1:E1").Copy Destination:=sh3.Range("A2")
Set rng = .Range("A1:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
End With
k = 2
With sh1
For i = 3 To .Cells(Rows.Count, "A").End(xlUp).Row
'住所
k = k + 1
.Range("A" & i & ":C" & i).Copy Destination:=sh3.Range("A" & k)
'時間タイプ
chk = Application.Match(.Range("A" & i).Value, rng, 0)
If IsError(chk) = False Then
sh2.Range("D" & chk & ":E" & chk).Copy Destination:=sh3.Range("D" & k)
'日付の●
For j = 4 To jmax
If (.Cells(1, j).Value >= sh2.Range("F" & chk).Value And _
sh1.Cells(1, j).Value <= sh2.Range("G" & chk).Value) _
Or .Cells(i, j).Value = "●" Then
sh3.Cells(k, j + 2).Value = "●"
End If
Next j
End If
Next i
End With
Application.ScreenUpdating = True
End Sub

  • 質問者

    boo********さん

    2017/8/1516:21:08

    前回の質問から引き続きのご回答ありがとうございます。

    >Sheet1になくてSheet2だけにある住所というのは存在しますか?
    存在します。

    どちらのシート情報(住所や日付)も
    常に固定なのではなく、日々変わるものになります。

    載せて頂いたものを参考に勉強させて頂きます。

  • その他の返信(5件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/8/15 17:52:16

お時間をたくさん割いて頂き大変申し訳ないのですが
理解できないコードを使用してのツール作成は避けようと思います。

もっと勉強が必要だということが理解できました。
お力添え頂き誠にありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

vcx********さん

2017/8/1515:28:17

boo_poo_k0さん

「表1」と「表2」があって、A列の住所をキーにして、この2つの表を一つの「表2」にまとめたいって事なら、「表1」と「表2」の2つだけで処理は出来そうに思えます。

「表2の途中」というものがどう介在してくるのか、何のために必要なのか等が理解出来ませんでした。

データをまとめたいというのが最終的な目的なら、空の表を3つだしても意味がありません。架空データでも良いので、データが入った状態のビフォーアフターで示した方が伝わりやすいと思いますよ。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる