Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


588 / 13645 ツリー ←次へ | 前へ→

【79303】イベント管理:複数ファイルのイベント名と日付の統合 VBA 初心者 17/7/6(木) 22:04 質問[未読]
【79307】Re:イベント管理:複数ファイルのイベント名... マナ 17/7/7(金) 20:44 発言[未読]
【79312】Re:イベント管理:複数ファイルのイベント名... VBA初心者 17/7/8(土) 10:46 お礼[未読]
【79313】Re:イベント管理:複数ファイルのイベント名... マナ 17/7/8(土) 12:12 発言[未読]
【79314】Re:イベント管理:複数ファイルのイベント名... VBA初心者 17/7/8(土) 13:45 お礼[未読]
【79315】Re:イベント管理:複数ファイルのイベント名... γ 17/7/8(土) 15:47 発言[未読]
【79316】Re:イベント管理:複数ファイルのイベント名... VBA 初心者 17/7/8(土) 16:39 お礼[未読]
【79566】Re:イベント管理:複数ファイルのイベント名... 同じ悩み 18/1/5(金) 13:25 質問[未読]
【79567】Re:イベント管理:複数ファイルのイベント名... γ 18/1/6(土) 7:38 発言[未読]

【79303】イベント管理:複数ファイルのイベント名...
質問  VBA 初心者  - 17/7/6(木) 22:04 -

引用なし
パスワード
   初めて投稿させていただきます。
VBA での入門書を読んだのですが、以下のやりたいことを可能とするプログラムのイメージが持てませんでした(VBAでプログラムするのは無理なのかもしれません。)
出来ないと判断する前に、ネットでプロの皆さんにご意見いただければと思います。よろしくお願いします。
【やりたいこと】
同じフォルダ内の複数の Excelファイルに入力されている各プロジェクトのイベント状況(イメージ:下記、ファイル1やファイル2)を、新規のExcelファイルにフォーマットを変えて一覧(イメージ:下記、管理ファイル)で出力したい。

(ファイル1.xlsx)
     プロジェクトA,  プロジェクトB,  プロジェクトC
イベント1:XX年XX月XX日  XX年XX月XX日  XX年XX月XX日 
イベント2:XX年XX月XX日  XX年XX月XX日  XX年XX月XX日
イベント3: XX年XX月XX日  XX年XX月XX日  XX年XX月XX日

(ファイル2.xlsx)
     プロジェクトD,  プロジェクトE,  プロジェクトF
イベント1:XX年XX月XX日  XX年XX月XX日  XX年XX月XX日 
イベント2:XX年XX月XX日  XX年XX月XX日  XX年XX月XX日
イベント3: XX年XX月XX日  XX年XX月XX日  XX年XX月XX日


1つのファイルにまとめて、以下の型式(月単位)でイベント状況を把握したい。
(管理ファイル.xlsx)
     XX年
          4月   5月    6月    7月      8月   9月  
プロジェクトA:      イベント1           イベント2 イベント3  
プロジェクトB:               イベント1    
プロジェクトC:           イベント1             イベント2
プロジェクトD: イベント1
プロジェクトE:                イベント1 
プロジェクトF:      イベント1                 イベント2

【79307】Re:イベント管理:複数ファイルのイベント...
発言  マナ  - 17/7/7(金) 20:44 -

引用なし
パスワード
   ▼VBA 初心者 さん:


この手の転記・集計ものは、苦手というか興味がないのですが
回答がつかないようなので。

1シートの場合は、こんな感じでできます。
これを参考に、修正していけば、お望みのものになると思います。

ですが、まずは、以下のコードを理解できるくらいまでは
基本的なことを勉強してからかもしれません。

Option Explicit

Sub test()
  Dim ws As Worksheet
  Dim v
  Dim j As Long, k As Long
  Dim m As Long, n As Long
  Dim w(1000, 12)
  
  Set ws = ActiveSheet
  
  v = ws.Range("A1").CurrentRegion.Value
 
  For k = 2 To UBound(v, 2)
    w(n, 0) = v(1, k)
    For j = 2 To UBound(v, 1)
      If v(j, k) = "" Then Exit For
      m = Month(v(j, k))
      If m > 3 Then
        m = m - 3
      Else
        m = m + 9
      End If
      w(n, m) = "○"
    Next
    n = n + 1
  Next
      
  With Worksheets.Add
    With .Range("B1")
      .Value = "4月"
      .AutoFill .Resize(, 12)
    End With
    .Range("A2").Resize(n, 13).Value = w
  End With

End Sub

【79312】Re:イベント管理:複数ファイルのイベント...
お礼  VBA初心者  - 17/7/8(土) 10:46 -

引用なし
パスワード
   マナさん
本当にご親切に例文を作成いただきありがとうございました。
初投稿でしたので、ご質問の仕方が悪かったのか、それとも本当にできないことを聞いていたのかわかりませんでした。

早速、いただいた例文のプログラムで挙動を見させていただき、やりたいことが実現できそうな希望を持てました。ありがとうございます。
大変厚かましく、申し訳ないのですが2点追加でお聞きしてもよいでしょうか?
・日付(月)は、年を区別できるようにできないでしょうか?
・該当月にイベントを「〇」ではなくて、そのイベント名をそのままセルに入力できないでしょうか?

3年をまたぐプロジェクトの各イベントの発生状況を管理できればと考えており、VBAが使用できると大変助かると思案しているところなのです。

【79313】Re:イベント管理:複数ファイルのイベント...
発言  マナ  - 17/7/8(土) 12:12 -

引用なし
パスワード
   ▼VBA初心者 さん:

>初投稿でしたので、ご質問の仕方が悪かったのか、

VBA質問箱基本ポリシー
ht tp://www.vbalab.net/bbspolicy.html

「丸投げ」っぽいと、回答しにくいです。

最初に書きましたが、まずは現在のコードを理解することが必要です。
そうすれば、ご自身で改善できることもあるはずです。

追加の2点についても、それほど難易度は高くないです。

【79314】Re:イベント管理:複数ファイルのイベント...
お礼  VBA初心者  - 17/7/8(土) 13:45 -

引用なし
パスワード
   マナさん、

丁寧に返信ありがとうございました。
おっしゃるとおり、丸投げのような質問をしており、
まだまだ勉強不足にもかかわらず、楽をしようとしてしまっておりました。
いただいたコードをもとに、いろいろ勉強させていただきたいと思います。
お時間を割いていただき、ありがとうございました。

【79315】Re:イベント管理:複数ファイルのイベント...
発言  γ  - 17/7/8(土) 15:47 -

引用なし
パスワード
   DateDiff関数を使って、基準日からの月数を求めれば、
横方向の位置がわかるはずです。
そういう考え方で対応が可能だと思います。

私も時々こちらでコメントしている者ですが、
ちょっと敬遠しましたね。原因は、
> VBAでプログラムするのは無理なのかもしれません
などと挑発するようなある種の「あざとさ」でしょうか(失礼)。
もっとフラットに、「ここまでトライしたけれど、
ここにつきあたっています。教えてください。」
というような質問をされたほうがよいですね。

それと今後の質問の際に注意いただきたいことをメモします。
行、列位置をきちんとわかるようにしたほうがよいです。
> イベント1:XX年XX月XX日
などという記述は雑過ぎます。

【79316】Re:イベント管理:複数ファイルのイベント...
お礼  VBA 初心者  - 17/7/8(土) 16:39 -

引用なし
パスワード
   γさん

返信ありがとうございます。
また、貴重なヒントをいただき、ありがとうございます。

すいません。そのような意図はなかったのですが、挑発しているような文面で投稿していたとは、皆様に失礼なことをしました。本当にすいません。

また、マナーの1つと言える行と列の表示の配慮が足らず申し訳ありませんでした。
至らぬ点があり、皆様を不快にさせてしまい本当にすいませんでした。

そんな中、返信いただけたマナさん、γさん、ご親切にありがとうございました。

【79566】Re:イベント管理:複数ファイルのイベント...
質問  同じ悩み  - 18/1/5(金) 13:25 -

引用なし
パスワード
   >VBA 初心者 さん:

希望された 複数ファイルで管理されたイベントの統合するための VBA code は完成することができましたでしょうか?
私も同じ悩みをもっており、このログにたどり着きました。
もし、よろしければCodeを教えていただけると助かります。
よろしくお願い致します。

【79567】Re:イベント管理:複数ファイルのイベント...
発言  γ  - 18/1/6(土) 7:38 -

引用なし
パスワード
   普通に考えて、昨年の7月に投稿された質問者さんが、
こちらを常に見ている可能性はとても低いので、
その方からの回答は期待できないと考えるのが自然です。

また、丸投げ的な質問になっているのではないか、
というやりとりがあったにもかかわらず、
そのスレッドに付け加える形で、
その質問者にコードを下さい、というのはいかにも安直で、
理解しかねます。

他人のスレッドに割り込んで便乗質問を追加するのではなく、
ご自分であらたなスレッドを立ち上げたほうがよいと思いますよ。

その場合、 17/7/7(金) 20:44 に提示がありましたコードを
理解するようにしてください。
そのうえで、どこまでご自分でトライされたかを付記して、質問して下さい。
なお、ご自分の場合のシートレイアウトを
あらためて説明してもらうとよいと思います。

588 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free