[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『行にあるコメントをまとめて一つのセルに表示させたい』(きさね)
保育園の出欠表をつくっているのですが、病欠理由をコメントにつける予定です。
月ごとに出欠表シートがあり、年間集計を別シートでおこなっています。
年間集計シートに一年間の病欠理由を園児別で表示したいのですが、可能でしょうか?
4月から3月(12か月分)シートのI9〜AM9のコメント→年間集計シートのH4
4月から3月(12か月分)シートのI10〜AM10のコメント→年間集計シートのH5
4月から3月(12か月分)シートのI11〜AM11のコメント→年間集計シートのH6
・
・
4月から3月(12か月分)シートのI43〜AM43のコメント→年間集計シートのH38
後でどんな理由で休んだ人が多いか 等の集計をすることはありません。
年間集計のシートで病欠理由を園児別で確認できるようにしたいのです。
マクロ初心者で自分の力だけでは解決できませんでした…
よろしくお願いします。
[エクセルのバージョン]
Excel2007
[OSのバージョンの例]
Windows Vista
こんな感じで出来るとは思いますが 1つのセルにまとめるという仕様がどうなのか・・・ 相当見づらくなりそうですし、コメントの文字数が多い場合には1つのセルに 入りきらずにエラーになると思います。
Sub test() Dim myMonth As Variant, dat(1 To 35, 1 To 1) As String, r As Range Dim i As Long, j As Long, m As Variant myMonth = Array("4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月", "1月", "2月", "3月") For Each m In myMonth For i = 1 To 35 For Each r In Worksheets(m).Range("I" & i + 8 & ":AM" & i + 8) If Not r.Comment Is Nothing Then If dat(i, 1) = "" Then dat(i, 1) = r.Comment.Text Else dat(i, 1) = dat(i, 1) & "," & r.Comment.Text End If End If Next r Next i Next m Worksheets("年間集計").Range("H4:H38").Value = dat End Sub
未テストです。 (momo)
>相当見づらくなりそうですし、コメントの文字数が多い場合には1つのセルに入りきらずにエラーになると思います。
病欠理由といっても、ただの熱や風邪等は記入しません。
大きな病気や怪我など、年度末に個別記録に記入する必要があるものだけですので、年間数個。文字数も1つのセルに入りきる量です。1つのセルにこだわってはいませんが、見やすいように左づめで表示されるならかまいません。
早速試してみましたが、エラーがでてしまいました。インデックスが有効範囲にありません。と出ました。
なにぶん初心者なもので問題点・解決方法がわかりません。
お分かりでしたら、お手数ですが、お教えいただきたく思います。
4月〜3月のシートと年間集計というシートは全てありますか? 半角全角も間違いなく確認してみてください。 (momo)
あと、書き忘れましたが標準モジュールで実行してくださいね。 (momo)
momo様 何度も親切にありがとうございます。 違うデータを作って試してみましたら見事できました。感動です! ただ、今まで作っていたデータで試すと上記のようなエラーが出ます。 私の今まで作っていたデータに問題があるようなので、自分で何とかしてみようと思います。 基本もわからない初心者の質問にお答えいただきありがとうございました。
特定のシートモジュールに書いているか シート名が微妙にでも違うか、くらいしか原因は無いと思います。 新規データで動くだけで大丈夫でしたらいいのですが そうじゃない場合は、細かく確認してみてください。 シート名にスペースがあったり、どの行でエラーになるのか・・・など。
(momo)
昨日自分で確認してみたところ、momo様の言うとおりシート名に半角スペースが入っていました。 最後までご親切にありがとうございます。
momo様はじめ皆様の親切に甘えて、もう一つ教えていただきたいのですが、コメント内にシート名やコメントを入れるセルに対応したセルデータを表示することはできるのでしょうか? コメントには病欠理由のほかに日付も記入するのですが自動で入る様にしたいのです。 (例えばI14にコメントを入れたらシート名とI6が自動で表示される) シートには月、I6〜AM6には日が入っています。
いろいろ質問して失礼だとは思いますが、よろしくお願いします
(きさね)
コメントの挿入時にはイベントが発生しません。 イベントとはエクセルが何かをしたときに自動的に動作するマクロの事ですが それが無いとなるとコメントを挿入したときに自動で入れ込む事ができません。
なんらかのボタンでコメントを挿入するか 挿入したあとに入れる事は可能かもしれませんが (momo)
現在コメントはボタンで挿入するようになっています
Sub 挿入()
ActiveCell.AddComment ("") ActiveCell.Comment.Visible = True
End Sub
ユーザー名を消すことは出来たのですが。。。
コメントをボタンで挿入するのであれば可能なのでしょうか? 可能ならばお教えいただきたいです。
(きさね)
ボタンでしたら、こんな感じで試してみてください
Sub 挿入() With ActiveCell .AddComment(.Parent.Name & vbLf & .EntireColumn.Rows(6).Value).Visible = True End With End Sub
(momo)
うまく作動しました!ありがとうございます。 これで思い描いた通りの出欠表を作ることが出来ると思います。 このデータはPC未経験者も扱うので、出来るだけ簡単に操作出来るようにと思って作っていましたが、 momo様のおかげで当初の予定以上のものが出来そうです。 私自身も素人に毛が生えたみたいなものなので、エクセルがちゃんと使いこなせるように 勉強します! したいと思います するかな。。。
本当 感謝!感謝!です ありがとうございました。
(きさね)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.