よろしくお願いします
仕事で顧客(例A様、B様、C様)の各週間予定表を一つのシートで作成してお配りしているのですが、それを一覧できるシートを自動作成したいと思っています
これまでは各シートを確認しながらの間違いやすい、手間のかかる作り方をしていましたがなんとか効率化できればと思っています
曜日毎で時間が重なる場合は2、3名のお名前が載せれるように、そして一覧では30分区切りにしていますが、各顧客週間予定表では15分刻みにしているので繰り上げ(9時15分なら9時30分へ)して一覧に載せたいと思っています
また、このような一覧の作り方だと難しい場合は違う様式で一覧シートを作成になってもかまいません
Excelの本など読みましたが参考になるのはなく、なんとかお知恵を拝借できますでしょうか
No.1ベストアンサー
- 回答日時:
一覧、顧客予定表のレイアウトが小っちゃくて、よく分からなかったので、勝手に想像してVBAを書いてみました。
こちらの想定は下図の通りです。差異がある場合は、適宜、コードを修正して下さい。各時間は、シリアル値で入力してください。もし、顧客予定表の時間を「9:00~」と表示したい場合は、書式設定で「h:mm"~"」としてください。
顧客予定表の時間に、一覧の時間を超えるような値(例えば、23:00とか)を入力した場合、一覧上の一番遅い時間に転記されます(一覧に存在する直近の時間に転記するようにしています)
一応、エラー処理は入れていますが、かなり雑です。必要に応じて追加してください。
Sub sample()
Dim ws As Worksheet
With Sheets("一覧")
Range(.Cells(2, 2), .Cells(Rows.Count, Columns.Count)).Clear
End With
For Each ws In Worksheets
If ws.Name <> "一覧" Then Call subTenki(ws)
Next
End Sub
Sub subTenki(ws As Worksheet)
Dim rng As Range
Dim c As Long
Dim r As Long
On Error GoTo ErrorHandler
With Sheets("一覧")
For Each rng In ws.Range("A5:F5")
If rng.Value <> "" Then
c = WorksheetFunction.Match(rng, .Rows("1:1"), 1)
r = WorksheetFunction.Match(rng.Offset(-1), .Columns("A:A"), 0)
If .Cells(r, c) = "" Then
.Cells(r, c) = ws.Range("A1")
Else
.Cells(r, c) = Cells(r, c) & _
vbLf & ws.Range("A1")
End If
End If
Next
End With
Exit Sub
ErrorHandler:
MsgBox ws.Range("A1") & "(" & ws.Name & ") に不正な入力があります。" _
& vbLf & "このシートの転記を中断しました。"
End Sub
ママチャリ様
ご回答ありがとうございます。
VBAという方法があったのですね。
仕事でexcelをずっと使用してきたのにもかかわらず、お分かりだと思いますが、知識不足でVBAという発想は出てこず、また何ができるか、どう使うかもわからないレベルでした。
このプログラムの使い方すらわからないのですが、見させていただいた限り私の希望していたものです。
これから何を勉強すればいいのかというのも、わからせていただけたベストアンサーです。
お手数をおかけしました。
本当にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでオブジェクトが必...
-
コンボボックスへ降順に表示す...
-
マクロのコマンドボタン《Activ...
-
エクセルの図形(線)の情報
-
Excell VBA にて配列に定数を代...
-
エクセルマクロ 変数をワーク...
-
Access-VBAでExcelファイ...
-
VBAマクロ実行時エラーの修正に...
-
Worksheets メソッドは失敗しま...
-
エクセル マクロ オートフィ...
-
VBA シートをコピーする際に Co...
-
ACCESSVBA からExcelの他ブック...
-
LEFT関数とIF関数の組み合わせ...
-
エクセルVBAが途中で止まります
-
エクセルで複数のシートのクリ...
-
Excelで、あるセルの値に応じて...
-
エクセルで特定の文字列が入っ...
-
AのセルとB行を比較して、一致...
-
Excelのシート上のShapeにイベ...
-
特定の文字がある行以外を削除...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access-VBAでExcelファイ...
-
コンボボックスへ降順に表示す...
-
エクセルVBAでオブジェクトが必...
-
マクロのコマンドボタン《Activ...
-
複数シートを一括で保護を掛け...
-
エクセルで品番を入れると、そ...
-
マクロ実行後、画面がちかちか...
-
エクセルのVBAについて教えてく...
-
エクセルマクロ 変数をワーク...
-
VBAでVlookup機能を使うときに...
-
エクセルマクロ(超初心者)
-
エクセルを共有にすると、シー...
-
Excelに関数使用を調べる方法
-
Excell VBA にて配列に定数を代...
-
エクセルVBA 別シートの最終セ...
-
Excelの各シートの一覧シートの...
-
エクセルVBAでフォームの無効化...
-
マクロのイベントトリガー
-
マクロでフォルダ内のExcelを全...
-
エクセル マクロについて、 Inp...
おすすめ情報