[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『会議室申請書内容を一覧に』(おもひろ)
いつもお世話になっております。
社外の会議室を予約する際に、申請書を提出しています。
申請書の様式は、決まっているので、エクセルで必要事項を入力しています。
・申請日(K10)
・担当者(H16)
・利用目的(D21)
・会議室表示名(D22)
・利用日(D23)
・利用人数(K23)
・使用室名、使用時間は、別列に時間を入れたら、B27、C27(何行も有り)に
チェックボックスにチェックが付き、時間も転記されてます。
申請書1枚につき、1シートです。なので、シート名は、”R7.2.12”と、
利用日にしています。
最近、会議室利用が多くなり、一覧表で表示出来たらなと思っております。
B C D E F G H
申請日 担当者 利用目的日 会議室表示名 利用日 利用人数 使用室名
I
使用時間
申請書を入力したら、一覧表(別シート)に自動転記させたいです。
このような、一覧表を作るには、どうしたら良いでしょうか?
何卒宜しくお願い致します。
< 使用 Excel:Excel2016、使用 OS:Windows11 >
原紙のシートと言うものが、有ります。
その原紙シートをコピーして、会議室申請書を作成しています。
あと、予約キャンセルした場合は、シートを削除しなく、頭に×をつけています。(例:×R7.2.2)
このような、シートも入れ混じっています、
(おもひろ) 2025/02/12(水) 11:50:50
m(__)m
(隠居Z) 2025/02/12(水) 12:34:50
|[B]|[C] |[D] |[E]|[F]|[G]|[H] |[I]|[J] |[K] |[L]
[5] | | | | | | | | | | |
[6] | | | | | | | | | | |
[7] | | | | | | | | | | |
[8] | | | | | | | | | | |
[9] | | | | | | | | | |申請日 |
[10]| | | | | | | | | |2025/3/1|
[11]| | | | | | | | | | |
[12]| | | | | | | | | | |
[13]| | | | | | | | | | |
[14]| | | | | | | | | | |
[15]| | | | | | |担当者 | | | |
[16]| | | | | | |姓名氏名| | | |
[17]| | | | | | | | | | |
[18]| | | | | | | | | | |
[19]| | | | | | | | | | |
[20]| | | | | | | | | | |
[21]| |利用目的 |カラオケ | | | | | | | |
[22]| |会議室表示名|練習 | | | | | | | |
[23]| |利用日 |2025/3/10| | | | | |利用人数| 5|
(隠居Z) 2025/02/12(水) 12:47:40
返信ありがとうございます。アドレスありがとうございます。助かります。
その図を、利用させて頂きました。
|[B]|[C] |[D] |[E]|[F]|[G]|[H] |[I]|[J] |[K] |[L] [27] |□ | ホール | | | | | | | | | [28] |□ | 201 | | | | | | | | | [29] |□ | 202 | | | | | | | | | [30] |☑ | 203 | 12:00〜17:00 | | | | | | | |
使用室名、使用時間は、このような感じです。
(おもひろ) 2025/02/12(水) 13:13:11
返信ありがとうございます。
申請する人=私なのですが、社外に電話して、空きが確認したら、申請書入力しています。
何卒宜しくお願い致します。
(おもひろ) 2025/02/12(水) 13:46:10
何か面倒な気がします。 私なら、一覧表に追記して、その内容をVBAで申請書にします。 個人的に自動化するならシートにチェックボックスは置きません。 セルに何かしらの値でも対応できる点と 一覧、リストで強力なテーブル化にした際、 追記すると書式は自動的に適用しますが、チェックボックスは 自身で行うしかないからです。 チェックボックスの値を取得するのも一手間増えて面倒です。 (tkit) 2025/02/12(水) 14:12:32
返信ありがとうございます。
確かに、面倒ですよね。
最初は、社外の申請書を手書きで、提出していたのですが、手直しが面倒になり、
エクセルで作り直したのです。
最近、会議室予約も多くなり、シートを開かないと、何の会議が分からなくなり、
一覧で見れないかなと思った訳です。
もっと、管理しやすい会議室予約システムみたいなのが有ると、便利ですよね。
色々と、ありがとうございました。
(おもひろ) 2025/02/12(水) 14:24:07
帳票(申請書)から一覧を作ろうとしていますが、 一覧に入力したデータから帳票(申請書)を作る方が、おおよその場合効率的です
ということをtkitさんは言おうとしているとおもいます。ちがったらすみません 私はそう思います (´・ω・`) 2025/02/12(水) 14:38:23
返信ありがとうございます。
確かに、一覧表から、申請書の方が管理しやすいですね。
社外に提出した申請書を、残して置きたいという気持ちも有りまして・・・。
もう少し、考えてみます。
色々と、ありがとうございました。
(おもひろ) 2025/02/12(水) 14:47:20
申請も何も、却下することなど基本無いのだから、
共有ファイルに各会議室の予定を管理して、それに対して空いていれば使用を宣言すればいい。
私も大昔、そういうのを作成し、数年にわたって管理していた経験がある。
他人の申請を改竄する者へのリスク対応(きちんとしたログ管理)
どこまで先の予約を認めるか(放っておくと、何か月も先まで先取りで予約してしまう者もでてくる)等々
結構な論点があり、こうした掲示板で、ホイを渡せるようなものでもない。
また最近では、そうしたものを製品として出しているところもあるでしょう。
会社として検討する課題(そしてきちんとコスト掛けるべき課題)というのが第一感です。
(????) 2025/02/12(水) 15:01:35
返信ありがとうございます。
総務課があるような、無いような感じの職場でして、そもそも申請書を、各々手書きで記入してくれたら、私は、エクセルで入力二度手間しなくて良いのですが・・・って感じです。
もう少し考えてみます。
ありがとうございました。
(おもひろ) 2025/02/12(水) 15:16:17
>確かに、一覧表から、申請書の方が管理しやすいですね。 >社外に提出した申請書を、残して置きたいという気持ちも有りまして・・・。
一覧表データから、申請書が完全に復元できるなら、一覧表先行方式で十分ですよね。 (何枚も申請書シートを作成しておくなんて無駄でしょう。ひな形が一枚あれば十分です。)
逆に一覧表は申請書の重要部分の抜粋でしかないなら、 一覧表なんて俯瞰する為だけにしか使えないので、検討するまでもないでしょう。
どっちなんですか? と言うか、一覧表のレイアウトって質問文中で開示されましたか? (レイアウトを決めてもいない段階で質問しているのですか?)
(半平太) 2025/02/12(水) 15:25:27
返信ありがとうございます。
レイアウトは、上に書き込んでありますが、ザックリです。
B C D E F G H
申請日 担当者 利用目的日 会議室表示名 利用日 利用人数 使用室名
I
使用時間
何故、一覧表が有ったら、便利なのか?と申しますと、
毎年、同じ会議が有りまして、去年は、どこの会議室?日時は、いつだった?とか、
聞かれる事が有りそうなので、一覧表で見たいかな〜と思った次第です。
皆さん、色々と考えて下さり、ありがとうございました。
これで、終了にしたいと思います。
(おもひろ) 2025/02/12(水) 15:42:24
遅れました・・・ (´・ω・`)さん、フォローありがとうございます。 フォロー通りです。
シートにテーブルを作ることで、数式や入力規則、条件付き書式が 新たなテーブルにコピーされるので、何行に増えようとも、 最初に設定すれば、何もせず必要な値を入力するだけで済みます。
指摘されている点もありますが、 質問者さんが、取りまとめており、 何らかの形で申請する内容を受け取り、 社外用のフォーマットにして、 提出するのであれば、
一覧表に質問者さんが手入力し、 以下をVBAで自動化する事ができます。
・指定のレコードを申請書に転記 ・任意のブック名で任意のフォルダに保存 ・outlookなら申請書を添付した定型のメール送信 ・複合機で機能があればFAX送信 (tkit) 2025/02/12(水) 16:12:03
なんで終了にするんですか?
目的からすると抜粋の方いいですよね。
VBAで一覧表なんて、さくっと作れますよ。
※多分、隠居Zさんが作ってくれるでしょう。 もし、そんな展開にならなければ私がやります。
(半平太) 2025/02/12(水) 16:15:51
返信ありがとうございます。
一覧表入力から、申請書出力した方が効率的なのですが、
私は、出来れば申請書で入力したいのです。(我儘申しまして、申し訳ございません。)
絶対に間違っていけない書類なので、(日時、使用室名など)
一覧表入力にすると、申請書が間違っていないか、又確認しないといけないので。
色々と、ありがとうございました。
(おもひろ) 2025/02/12(水) 16:46:37
>(我儘申しまして、申し訳ございません。)
我儘なんて事は無いです。 実態を知悉しているのはおもひろさんだけなので、その判断は尊重されます。
※ 隠居Zさんのお出ましをしばらくお待ちください。
今日中に(彼、または他の回答者から)何らかの音沙汰がなければ、
明日、私が取り掛かります。
(半平太) 2025/02/12(水) 16:59:50
>一覧表入力にすると、申請書が間違っていないか、又確認しないといけないので。
他の申請と比べ重複等をチェックするための一覧表でもあるんですけどね。
私はここまでといたします。 (tkit) 2025/02/12(水) 17:15:35
おはようございます。
返信ありがとうございます。
半平太様
> 実態を知悉しているのはおもひろさんだけなので、その判断は尊重されます。
ありがとうございます。感謝します。
申請書なのですが、社外様式の申請書なので、毎年変更する恐れがあるのです。
現に、今年も変更箇所が有りまして、エクセル手直ししました。
あと、私が申請書入力する際に、社員の方がメモを持って来るのですが、並びが申請書順に
なっているので、入力しやすい点も有ります。
あと、入力しながら、電話予約しているので、予約出来たら、すぐに印刷→別階に持って行く流れです。
その申請書は、ハンコ押されて返却されるので、やはりシートで残して置きたいです。
一覧表は、あくまでも私のメモみたいなものなので、急いでないですし、出来なくても全然大丈夫です。
お忙しい中、皆様、ありがとうございました。
(おもひろ) 2025/02/13(木) 08:07:49
色々とアドバイスありがとうございます。
tkit様のコメントに納得しております。
>他の申請と比べ重複等をチェックするための一覧表でもあるんですけどね。
重複は、全くと言っていい程、ないです。申請する人は、幹部と決まった少数の人なので、
重複して頼んでくる事は、まずないです。申請書の戻しがあるので、それをチェックしてるようです。
(アナログですよね)
とても、高度なアドバイス、とても勉強になります。
ありがとうございました。
(おもひろ) 2025/02/13(木) 08:35:18
ちょっと確認させてください。
>シート名は、”R7.2.12”と、利用日にしています。 時間帯は数種類あろうとも、1シートに担当者は1名ですね?(半信半疑なんですけども)
>予約キャンセルした場合は、シートを削除しなく、頭に×をつけています。(例:×R7.2.2) 頭に「×」があるシートは、一覧表の対象にはしないとの理解でいいですね?
A列は空欄でいいんですね?
※ 今後、私には「さん」づけでお願いします。「様」は重いので・・
(半平太) 2025/02/13(木) 08:42:38
3つの質問、OKでお願いします。
>A列は空欄でいいんですね?
癖で、どうしてもいつもA列空けてしまいますね。(線が引いてあるかどうかなので)
予約キャンセルの×は、キャンセルの連絡したかの証拠ですかね。
アナログの私ですが、宜しくお願い致します。
一覧表のフォーマットは、特にこだわりないです。
(おもひろ) 2025/02/13(木) 09:12:43
一覧表の「シート見出し」を右クリックして、「コードの表示(V)」を選ぶ。 中央の白いエリアに後記マクロコードを貼り付ける。 ALT+F11でエクセルに戻る
マクロ名「makeOutLine」を実行する。
Sub makeOutLine()
Dim Ws As Worksheet
Dim outData()
Dim outRow As Long
Dim aCell As Range
ReDim outData(1 To Worksheets.Count - 1, 2 To 9)
outRow = 0
For Each Ws In Worksheets
If Ws.Name <> "一覧表" And Left(Ws.Name, 1) <> "×" Then
outRow = outRow + 1
With Ws
outData(outRow, 2) = .Range("K10")
outData(outRow, 3) = .Range("H16")
outData(outRow, 4) = .Range("D21")
outData(outRow, 5) = .Range("D22")
outData(outRow, 6) = .Range("D23")
outData(outRow, 7) = .Range("K23")
For Each aCell In .Range("D28", .Cells(.Rows.Count, "D").End(xlUp))
If aCell <> "" Then
outData(outRow, 8) = outData(outRow, 8) & vbCrLf & aCell(1, 0)
outData(outRow, 9) = outData(outRow, 9) & vbCrLf & aCell(1, 1)
End If
Next aCell
End With
outData(outRow, 8) = Right(outData(outRow, 8), Len(outData(outRow, 8)) - 1)
outData(outRow, 9) = Right(outData(outRow, 9), Len(outData(outRow, 9)) - 1)
End If
Next Ws
'結果をUPDATE
Me.UsedRange.Clear
Range("B2").Resize(UBound(outData), 8) = outData
Range("B1:I1") = Split("申請日,担当者,利用目的日,会議室表示名,利用日,利用人数,使用室名,使用時間", ",")
End Sub
(半平太) 2025/02/13(木) 09:21:36
ありがとうございます。
マクロ貼り付けました。
使用室名が、全て表示されてしまっていて、
202
203
204
401
402
401・402 (大会議室) 403 404 405 406 407 408 409 410 408・409・410 (和室大会議室) 茶室
行間が幅広いになってしまっています。チェック付いている使用室名だけ表示は、難しいですかね。
難しいならば、使用室名、時間は、表示しなくても良いです。
他は、完璧に表示されています。
感謝です、ありがとうございます。
(おもひろ) 2025/02/13(木) 10:09:24
>使用室名が、全て表示されてしまっていて、
おかしいなぁ・・
>・使用室名、使用時間は、別列に時間を入れたら、B27、C27(何行も有り)に >チェックボックスにチェックが付き、時間も転記されてます。 > [29] |□ | 202 | > [30] |レ | 203 | 12:00〜17:00
使用時間を入れるとチェックボックスにチェックが付くのですよね?
つまり、使用時間有り=チェック有り なので、 使用時間が入っていなければ、抽出されないハズですけど。
(半平太) 2025/02/13(木) 10:34:13
お返事ありがとうございます。
使用時間の列に、
=IF(O27=""," : 〜 : ",RIGHT(" "&TEXT(N27,"?0!:00"),5)&" 〜 "&RIGHT(TEXT(O27,"?0!:00"),5))
のような関数が入ってまして、N,O列に時間(例:1200)と入れると、12:00と表示してくれるように
なっています。(以前にも投稿させてもらってます)
私の説明不足、説明下手で、誠に申し訳ございません!!
(おもひろ) 2025/02/13(木) 10:50:05
以下の箇所を下の文と入れ替えてください。
> outData(outRow, 7) = .Range("K23")
>
> For Each aCell In .Range("D28", .Cells(.Rows.Count, "D").End(xlUp))
> If aCell <> "" Then
> outData(outRow, 8) = outData(outRow, 8) & vbCrLf & aCell(1, 0)
> outData(outRow, 9) = outData(outRow, 9) & vbCrLf & aCell(1, 1)
> End If
> Next aCell
> End With
>
> outData(outRow, 8) = Right(outData(outRow, 8), Len(outData(outRow, 8)) - 1)
> outData(outRow, 9) = Right(outData(outRow, 9), Len(outData(outRow, 9)) - 1)
> End If
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
outData(outRow, 7) = .Range("K23")
For Each aCell In .Range("D28", .Cells(.Rows.Count, "D").End(xlUp))
If Replace(Replace(Replace(aCell, " ", ""), " ", ""), ":〜:", "") <> "" Then
outData(outRow, 8) = outData(outRow, 8) & vbCrLf & aCell(1, 0)
outData(outRow, 9) = outData(outRow, 9) & vbCrLf & aCell(1, 1)
End If
Next aCell
End With
outData(outRow, 8) = Right(outData(outRow, 8), Len(outData(outRow, 8)) - 2)
outData(outRow, 9) = Right(outData(outRow, 9), Len(outData(outRow, 9)) - 2)
End If
(半平太) 2025/02/13(木) 11:26:56
何度も、ありがとうございます。
使用時間は、チェック付いている行だけのが、表示されましたが、
申請書様式のD48、D49の”上記のとおり承認します。利用料は”との表示も出てしまっているので、
使用時間は、範囲D27:D46までと出来ますか?
現状は、
9:00 〜 17:00
上記のとおり承認します。
利用料は
表示されてしまっています。
何卒宜しくお願い致します!!!
(おもひろ) 2025/02/13(木) 11:38:20
> For Each aCell In .Range("D28", .Cells(.Rows.Count, "D").End(xlUp))
↓へ変更
For Each aCell In .Range("D27:D46")
(半平太) 2025/02/13(木) 11:54:18
何度もすいません。
エラーが出まして、 プロシージャの呼び出し、または引数が不正ですと表示されます。
何か、入れ間違いしたのでしょうか?
よろしくお願いいたします。
(おもひろ) 2025/02/13(木) 13:01:42
こちらでは何事も起きていないので分かりません。
コードの何処かが黄色く反転していませんか?
いるなら、どの行ですか?
(半平太) 2025/02/13(木) 13:08:38
何度も申し訳ございません
黄色く反転していないのですが?
一応、全部コピペします。
私、何か消してしまったとか、有りますか?
Sub makeOutLine()
Dim Ws As Worksheet
Dim outData()
Dim outRow As Long
Dim aCell As Range
ReDim outData(1 To Worksheets.Count - 1, 2 To 9)
outRow = 0
For Each Ws In Worksheets
If Ws.Name <> "一覧表" And Left(Ws.Name, 1) <> "×" Then
outRow = outRow + 1
With Ws
outData(outRow, 2) = .Range("K10")
outData(outRow, 3) = .Range("H16")
outData(outRow, 4) = .Range("D21")
outData(outRow, 5) = .Range("D22")
outData(outRow, 6) = .Range("D23")
outData(outRow, 7) = .Range("K23")
For Each aCell In .Range("D27:D46")
If Replace(Replace(Replace(aCell, " ", ""), " ", ""), ":〜:", "") <> "" Then
outData(outRow, 8) = outData(outRow, 8) & vbCrLf & aCell(1, 0)
outData(outRow, 9) = outData(outRow, 9) & vbCrLf & aCell(1, 1)
End If
Next aCell
End With
outData(outRow, 8) = Right(outData(outRow, 8), Len(outData(outRow, 8)) - 2)
outData(outRow, 9) = Right(outData(outRow, 9), Len(outData(outRow, 9)) - 2)
End If
Next Ws
'結果をUPDATE
Me.UsedRange.Clear
Range("B2").Resize(UBound(outData), 8) = outData
Range("B1:I1") = Split("申請日,担当者,利用目的日,会議室表示名,利用日,利用人数,使用室名,使用時間", ",")
End Sub
(おもひろ) 2025/02/13(木) 13:15:57
こちらと全く同じコードです。
時間帯データがないのにシートを作っていませんか?
そうだとしても、コードが黄色く反転しないのは不可解ですが・・
取り敢えず、以下の2文を入れ替えてみてください。
> outData(outRow, 8) = Right(outData(outRow, 8), Len(outData(outRow, 8)) - 2) > outData(outRow, 9) = Right(outData(outRow, 9), Len(outData(outRow, 9)) - 2) ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
outData(outRow, 8) = Right(outData(outRow, 8), Application.Max(0, Len(outData(outRow, 8)) - 2))
outData(outRow, 9) = Right(outData(outRow, 9), Application.Max(0, Len(outData(outRow, 9)) - 2))
(半平太) 2025/02/13(木) 14:00:59
> 時間帯データがないのにシートを作っていませんか?
これは、ひな形シートでしたか・・な・る・ほ・ど
(半平太) 2025/02/13(木) 14:08:11
あれ?コメント消えてる。。。。
エラーは、解除出来たのですが、
使用室名の欄に、 : 〜 : が全て表示されており、
使用時間は、空欄になっています。
どうしたら、良いのでしょうか?
(おもひろ) 2025/02/13(木) 14:24:06
と言われましても、こちらでは何も問題ないですからねぇ・・
試しに、下記マクロを貼りつけて「makeOutLineForTest」を実行してみてください。 すると、J列にシート名が表示されますので、 この現象が最初に始まったシート名を教えてください。 ↓ >使用室名の欄に、 : 〜 : が全て表示されており、 >使用時間は、空欄になっています。
Sub makeOutLineForTest()
Dim Ws As Worksheet
Dim outData()
Dim outRow As Long
Dim aCell As Range
ReDim outData(1 To Worksheets.Count - 1, 2 To 10)
outRow = 0
For Each Ws In Worksheets
If Ws.Name <> "一覧表" And Left(Ws.Name, 1) <> "×" Then
outRow = outRow + 1
With Ws
outData(outRow, 2) = .Range("K10")
outData(outRow, 3) = .Range("H16")
outData(outRow, 4) = .Range("D21")
outData(outRow, 5) = .Range("D22")
outData(outRow, 6) = .Range("D23")
outData(outRow, 7) = .Range("K23")
outData(outRow, 10) = Ws.Name
For Each aCell In .Range("D27:D46")
If Replace(Replace(Replace(aCell, " ", ""), " ", ""), ":〜:", "") <> "" Then
outData(outRow, 8) = outData(outRow, 8) & vbCrLf & aCell(1, 0)
outData(outRow, 9) = outData(outRow, 9) & vbCrLf & aCell(1, 1)
End If
Next aCell
End With
outData(outRow, 8) = Right(outData(outRow, 8), Application.Max(0, Len(outData(outRow, 8)) - 2))
outData(outRow, 9) = Right(outData(outRow, 9), Application.Max(0, Len(outData(outRow, 9)) - 2))
End If
Next Ws
'結果をUPDATE
Me.UsedRange.Clear
Range("B2").Resize(UBound(outData), 9) = outData
Range("B1:I1") = Split("申請日,担当者,利用目的日,会議室表示名,利用日,利用人数,使用室名,使用時間", ",")
End Sub
(半平太) 2025/02/13(木) 14:51:38
何度もすいません。
新たにマクロ作りましたが、オートメーションエラーで、応答なし状態です。
先に、"一覧表"という名前のシートを追加してから、マクロ登録したのが、まずいのですか?
"一覧表"のシートは、作らなくて良いのですか?
マクロでシート追加されるのですか?
(おもひろ) 2025/02/13(木) 15:13:08
あれ? 一覧表シートは既にできてますよね?
前回と同じところに、同じ様に貼り付けてください。
(半平太) 2025/02/13(木) 15:21:08
>あれ? 一覧表シートは既にできてますよね?
既に、出来てます!
又、新たなエラーが出たのですが。。。。
コンパイルエラー
Meキーワードに使用 方法が不正です
と出ました。
(おもひろ) 2025/02/13(木) 15:28:34
これでやってください。( 一覧表のシートモジュールの空いているスペースにコピペです) ↓ > 一覧表の「シート見出し」を右クリックして、「コードの表示(V)」を選ぶ。 > 中央の白いエリアに後記マクロコードを貼り付ける。 > ALT+F11でエクセルに戻る
(半平太) 2025/02/13(木) 15:34:29
出来ました!!(パチパチ)
私のマクロの貼り付け方が、おかしかったのでしょうか?
で、J列にシート名が表示されてますし、
使用室名と使用時間も、きちんと表示されてます。
コード貼り付けてから、エクセルに戻る時は、×で閉じて、駄目だったのですか?
希望通りの一覧表が出来ました!
長い間、ありがとうございます!
(おもひろ) 2025/02/13(木) 15:44:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.