電子書籍の厳選無料作品が豊富!

左にある予定表のデータをグーグルカレンダーに反映したいため、右にある表のように並び替えたいのですが、1年分あるので、何か式のようなもので一気に出来る方法を探しています。
今はカレンダー作成前なので、予定表⇒グーグルカレンダー、もしくはグーグルカレンダーから予定表のどちらの流れでも構いません。
日ごとの予定の数が一緒であればVlookで引っ張れるのですが、日ごとの予定も規則性がなくバラバラなので、困っております。
マクロを組めれば早いと思うのですが、当方マクロは左下のボタンを押して録画してそれを再生するくらいの知識しか持ち合わせておりません。
何か案はないでしょうか。
ご教授お願い致します。

「規則性が違う2つのエクセルカレンダーを1」の質問画像

A 回答 (1件)

こんばんは!



VBA向きの質問だと思います。
↓の画像のような配置で元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1のA列(日付列)はセルの表示形式、ユーザー定義から
m・d
となっているという前提です。

標準モジュールにしてください。

Sub Sample1()
Dim i As Long, k As Long, lastRow As Long
Dim wS As Worksheet, myAry
Set wS = Worksheets("Sheet1")
With Worksheets("Sheet2")
.Range("B:B").NumberFormatLocal = "yyyy/m/d"
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 6 Then
Range(.Cells(7, "A"), .Cells(lastRow, "B")).ClearContents
End If
For i = 248 To wS.Cells(Rows.Count, "A").End(xlUp).Row
If wS.Cells(i, "C") <> "" Then
myAry = Split(wS.Cells(i, "C"), "・")
For k = 0 To UBound(myAry)
With .Cells(Rows.Count, "A").End(xlUp).Offset(1)
.Value = myAry(k)
.Offset(, 1) = wS.Cells(i, "A")
End With
Next k
End If
Next i
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m
「規則性が違う2つのエクセルカレンダーを1」の回答画像1
    • good
    • 1
この回答へのお礼

ありがとうございます!
VBAのご丁寧な解説のおかげでコピペするだけで実行することができ、やりたいことを完全に実現出来る事が出来ました!!
本当に助かりました。
話がそれてしまうのですが、tom04様はVBAは専門学校か何かで習われたのでしょうか?
もし独学であればどのサイトや本を参考にして勉強なされたのか教えて頂ければ幸いです!
私もしれっとこういうことが出来るような人材になりたいです。

お礼日時:2018/03/07 18:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!