2022.8.9  2

エクセルマクロ(EXCEL VBA) その16 表を整理してメアドリストを作る



舞台・演劇の制作業務はなるべく自動化してパソコンにやってもらおう企画

 

アンケートフォームの結果から、メールアドレスリストを作ろう

 

公演でアンケートを取って、メールアドレスを収集して、次の公演の時にアドレスリストを使うということは、多くの劇団でやっている作業だと思います。
アンケートフォームからCSVをダウンロードしたらこうなっていたとします。
このCSVをダウンロードする

アンケートの結果

このアンケートの表を使って、氏名とメールアドレスだけのリストを作ってみましょう。
ただし、メールアドレスリストには、メルマガの列が「はい」になっている人だけをリストに入れたいということにします。
また、同じメールは2つ要らないので、一人につき一つのメールアドレスがあれば事足ります。

では、一つずつマクロを書いていきましょう。

シートをコピー

大事なフォームの結果が失われてしまわないように、まずはシートをコピーします。

開発→Visual Basic
挿入→標準モジュール として、

Sub address_seiri()

End Sub

としましょう。

プロシージャを作る

続いてシートをコピーします。
なお、シートの複製(コピー)のやり方はその14でやりましたので、ご参照ください。

その時は、シートの名前を指定していましたが、今回は今いるシートということでやってみましょう。
今いるシートをActiveSheetと呼ぶので、
今いるシート(ActiveSheet)の後ろに、新しいシートを作るには、

ActiveSheet.Copy after:=ActiveSheet

とすれば良さそうです。

シートをコピー

もちろん、シートの名前(address_seiri)を指定して、

Sheets("address_seiri").Copy after:=Sheets("address_seiri")

としても大丈夫です。

続いて、シートの名前を付けておきましょう。

シートのコピーを行った直後は、【コピー後のシート】がアクティブになるので、resultという名前を付けるには

ActiveSheet.Name = "result"

と書きましょう。

シートに名前を付ける

これを実行すると

コピーしたシートに名前を付けた

resultというシート名を付けることができました。

 

不要な行を削除

では次に、不要な行を削除していきましょう。
今回「不要な行」は、メルマガの列で「いいえ」と答えている人です。
つまりメルマガは要らないとアンケートで答えた人に、メールを送るわけにいかないので削除しようということですね。
このことをマクロちゃんに伝えるためにはどうすればよいでしょうか?

 
Ifを使えば良さそうですね。
・・・もし「いいえ」だったらその行を削除する

というのをマクロで表現していきましょう。

例としてD3の「いいえ」を狙ってみましょう。
D3はCellsで表現するとCells(3, 4)で、
3行目はRows(3)なので、

If Cells(3, 4) = "いいえ" Then
    Rows(3).Delete
End If

とすれば良いですね。

※Ifについてはその7、行の削除についてはその15をご参照ください。

いいえだったらその行を削除

この時、コピーしてできたresultシートを一度削除してから、マクロを実行してください。
そのまま実行するとエラーが出るはずです。

いいえが消えた

3行目の「いいえ」の行を消すことができました。
良さそうなので、2行目から8行目まで繰り返しましょう。
繰り返すにはおなじみのFor Nextを使います。

今書いたIf文をFor Nextで挟みます。
さっきは3だったところが変化する部分なので、iで置き換えて、i = 2 To 8 としてみましょう。

For Nextで挟む

これを実行すると

いいえが残ってしまった

残念ながら「いいえ」が残ってしまいました・・・。
何故でしょう。

 
実は、「いいえ」を見つけたら行を削除ということ繰り返しているため「いいえ」が連続していると、その行を見逃してしまうということなんですね。盲点でした・・・。

これを解決するために簡単な方法としては、上から順に作業するのではなくて、下から順に作業するというやり方が良いそうです。

i = 8 To 2 に変えて、さらに Step -1 というのを書き足してください。
これはStep -1というので、1ずつ数字を下げていくという命令です。
なので、8, 7, 6, ・・・, 3, 2という順で実行されるということですね。

後ろから実行

これを実行すると

うまく「いいえ」を削除できた!

うまく「いいえ」のあった行を削除できました!

 

重複を削除

次に、よく見ると吉宗さんのアドレスが重複しています。
劇団のファンほど、何度も来て、毎回アンケートを書いてくださいます。ただアドレスは重複してもしょうがないので、重複しているアドレスは削除しましょう。

エクセルにはもともと「重複の削除」ができる RemoveDuplicates というコマンドがあるのでこれを使います。
重複を確認したいのは、メールアドレスが書いてあるC列(3列目)なので

Cells.RemoveDuplicates (3)

と書きます。
Cellsは、このシート全体 という意味です。

このコードを追加して実行すると、

メールアドレスの重複を削除できた

メールアドレスの重複を削除できました!

 

不要な列を削除

最後に不要な列を削除していきましょう。
氏名とアドレスだけ残したいので、B列、D~F列は削除したいですね。

先程の反省を生かして、D~F列を先に削除しましょう。

Columns("D:F").Delete
Columns("B").Delete

と書きます。

カラムを削除

複数の列を削除するときは、こんな風に書きます。複数行の削除の時は番号だったんですが、列はアルファベットじゃないとうまく行かないようですのでご注意ください。

これを実行すると

名前とメールアドレスだけになった

うまく名前とメールアドレスだけにすることができました。

最終的なマクロの内容はこんな感じです。

表の整理マクロ

アンケートフォームの結果はカンパニーによって異なると思うので、ご自分の環境でメールアドレスを整理するシステムを作ってみてください。

 
今回の最終的なコード

Sub address_seiri()
ActiveSheet.Copy after:=ActiveSheet
ActiveSheet.Name = "result"

For i = 8 To 2 Step -1
If Cells(i, 4) = "いいえ" Then
    Rows(i).Delete
End If
Next

Cells.RemoveDuplicates (3)

Columns("D:F").Delete
Columns("B").Delete

End Sub

 

宿題-16
演出家はとても繊細な人で、「僕は酷いアンケートは読みたくない!」と言っているとします。
それが彼のためになるかどうかはさて置き、評価が6以上のものだけに絞り、「アンケート」「評価」だけを読めるように整理してください。
 

▼ クリックで解説を表示

 


もくじ(エクセルマクロ EXCEL VBA)

  

演劇の制作さんへ

→ 他にどんな作業ができたら便利か思いついたらぜひ教えてください!(うまく実現できるかわからないけど・・・。)
http://entre-news.jp/contact
 

 
(文:森脇孝/エントレ)

 

最近の記事

『MEAN GIRLS』会見より
演出家とのディスカッションを重ね 生田絵梨花主演『MEAN GIRLS』開幕
12
公演中 01月30日(月) 〜 02月27日(月)
マグマ∞「南四局は終わらない」
青年座のベテラン俳優たちが集結して新ユニットを結成! マグマ∞『南四局は終わらない』浅草九劇で2月1日(水)に開幕/上演は12日(日)まで
10
公演中 02月01日(水) 〜 02月12日(日)
『舞台・エヴァンゲリオン ビヨンド』出演者
窪田正孝、石橋静河らの出演でエヴァを舞台化 『舞台・エヴァンゲリオン ビヨンド』5月6日(土)からTHEATER MILANO-Zaで上演
7
公演日程 05月06日(土) 〜 06月19日(月)
三浦涼介、鳥越裕貴、平野良らが豪華共演! CCCreation Presents 舞台『桜姫東文章』5月3日(水)から新宿スペース・ゼロで上演
37
公演日程 05月03日(水) 〜 05月10日(水)
月影番外地その7『暮らしなずむばかりで』 撮影:田中亜紀
素通り出来ない台詞だらけ! 高田聖子の月影番外地その7『暮らしなずむばかりで』下北沢ザ・スズナリで上演中/1月29日まで
4
公演終了 01月18日(水) 〜 01月29日(日)
劇団☆新感線『ミナト町純情オセロ~月がとっても慕情篇~』製作発表より 撮影:田中亜紀
三宅健、松井玲奈、寺西拓人ら 新たな挑戦に意欲 劇団☆新感線『ミナト町純情オセロ~月がとっても慕情篇~』製作発表レポート
182
公演日程 03月10日(金) 〜 05月01日(月)
『Dear Me!』出演者インタビュー
川崎のとある夜間保育園で繰り広げられる、ドタバ タな親たちと、それに振り回され続ける保育士たちの物語。青春事情・大野ユウジ氏 の珠玉作『Dear Me!』出演者インタビュー ラゾーナ川崎プラザソルで1月22日から上演!
22
公演終了 01月21日(土) 〜 01月29日(日)
青春事情『キレナイ』初演
川崎のとある美容院で繰り広げられる、何かと“キレナイ”思いを抱える人たちを描く 青春事情・大野ユウジ氏の珠玉作『キレナイ』出演者インタビュー ラゾーナ川崎プラザソルで1月21日から上演!
20
公演終了 01月21日(土) 〜 01月29日(日)
骸骨ストリッパー calavera box vol.7 美女と池袋の怪異譚 『フクロウとネコ』
カフェ公演ならではの空気感を味わおう 骸骨ストリッパー calavera box vol.7 美女と池袋の怪異譚 『フクロウとネコ』1月27日(金)から池袋Honey Beat Studioで上演
1
公演終了 01月27日(金) 〜 01月30日(月)
青年座『時をちぎれ』
土田英生書き下ろし新作 室町幕府を偏愛する社長とその会社を描いたコメディ! 青年座『時をちぎれ』1月20日(金)から東京芸術劇場シアターウエストで上演
13
公演終了 01月20日(金) 〜 01月29日(日)
ミュージカル『スクルージ』
クリスマスを嫌う男が起こす最高な奇跡 ミュージカル『スクルージ~クリスマス・キャロル~』観劇レビュー
4
公演終了 12月07日(水) 〜 12月25日(日)
ゲキ×シネ「神州無頼街」ポスター
【全国生中継あり】ゲキ×シネ『神州無頼街』福士蒼汰、宮野真守が登壇する舞台挨拶が1月14日(土)に新宿バルト9で開催/ゲキ×シネ『髑髏城の七人』Season月の特別上映も
108
公演終了 01月13日(金) 〜 02月02日(木)
秋吉織栄・松村彩永・結瀬ことり
秋吉織栄・松村彩永・結瀬ことりの女優3人組ユニット・おごチャン企画第1弾『戦隊!鷺ノ宮元子』1月19日から下北沢シアター711で上演
6
公演終了 01月17日(火) 〜 01月22日(日)
月影番外地その7『暮らしなずむばかりで』
明日を想えば、死がちらつく! そんな五十路の逆噴火物語! 高田聖子の月影番外地その7『暮らしなずむばかりで』1月18日(水)から下北沢ザ・スズナリで上演
5
公演終了 01月18日(水) 〜 01月29日(日)
劇団佐賀さわげが「九州若手劇団アワード!2022」を受賞
劇団佐賀さわげが「九州若手劇団アワード!2022」を受賞/寄付金を引き続き募集中
2
Ring-Bong第10回公演「さなぎになりたい子どもたち」
中学校の保健室に集う子供たちとその事情を描く Ring-Bong第10回公演『さなぎになりたい子どもたち』 1月18日(水)から座・高円寺1で上演
7
公演終了 01月18日(水) 〜 01月22日(日)
CEDAR×僕たち私たち『The Birthday Party』
大鶴義丹、​藤田朋子、​大森博史らが不条理でミステリアスなハロルド・ピンター作品に挑む CEDAR×僕たち私たち『The Birthday Party』12月17日 (土) から新宿シアターモリエールで上演
13
公演終了 12月17日(土) 〜 12月25日(土)
古田新太、天海祐希らの熱演で完走した劇団☆新感線『薔薇とサムライ2−海賊女王の帰還−』12月13日(火)にディレイビューイングを開催
80
公演終了 12月13日(火) 〜 12月13日(火)
八王子ユースシアター2022全舞台一斉上演会『TAMARIBA』
コンセプトは「つくる、タマリバ。」 八王子ユースシアター『全舞台一斉上演会“TAMARIBA”』12月16日(金)~18日(日)に八王子市文化会館で開催
20
公演終了 12月16日(金) 〜 12月18日(日)
製作委員会第13回公演 『メイン通りの妖怪』
60代からの「自分との折り合いのつけ方」をテーマにしたコメディ 製作委員会 第13回公演 『メイン通りの妖怪』が12月2日に新宿シアター・ミラクルで開幕
10
公演終了 12月02日(金) 〜 12月08日(木)
劇団チャリT企画『アベベのベ 2』撮影:鈴木 淳
風刺か? 冒涜か? 4者にムチ打つ茶番コメディ! 劇団チャリT企画『アベベのベ 2』が下北沢・駅前劇場で開幕/上演は12月4日(日)まで!
8
公演終了 11月30日(水) 〜 12月04日(日)
中村倫也主演ミュージカル『ルードヴィヒ~Beethoven The Piano~』
【予告動画あり】中村倫也主演ミュージカル『ルードヴィヒ~Beethoven The Piano~』2023年2月24日から全国11館の映画館で上映
160
公演日程 02月24日(金) 〜 (木)
『守銭奴 ザ・マネー・クレイジー』 撮影:田中亜紀
虚飾の城の裸の王様のものがたり『守銭奴 ザ・マネー・クレイジー』観劇レビュー
23
公演終了 11月23日(水) 〜 12月11日(日)
『ルーシーフェス/大盤振舞』
楽劇座10周年記念公演をオンラインで開催! 公演映像2本+生配信6回の『ルーシーフェス/大盤振舞』12月10日から1ヶ月にわたり開催
17
公演終了 12月10日(土) 〜 01月10日(火)
お座敷コブラ『TRIANGLE』
チームTartaglia 出演者インタビュー 『非対面芝居』がさらに進化! 濃密な会話サスペンス リモート取材の裏に隠された17年前の未解決事件。衝撃のラストは必見! お座敷コブラ『TRIANGLE』2022年11月30日から溝ノ口劇場で上演
37
公演終了 11月30日(水) 〜 12月04日(日)
劇団B-Stage『どうか私と黄泉の果てまで』
劇団B-Stageが初のオリジナル作品に挑戦! 舞台『どうか私と黄泉の果てまで』12月9日(金)~11日(日)に北翔大学札幌円山キャンパス多目的ホールにて上演
5
公演終了 12月09日(金) 〜 12月11日(日)
ゲキ×シネ「神州無頼街」ポスター
【予告編動画あり】福士蒼汰・宮野真守の最強バディに映画館でまた会える! ゲキ×シネ『神州無頼街』2023年1月13日から全国上映
86
公演終了 01月13日(金) 〜 (木)
音楽劇『ジェイド・バイン』
アンドロイドの世界、人間の熱で今伝えたいメッセージ 音楽劇『ジェイド・バイン』観劇レビュー
25
公演終了 11月17日(木) 〜 11月23日(水)
made by nakice
モノと生息し、身体を含む物質が持つ現象と形跡を表出させる nakice『ABITA@京都芸術センター』12月16日~18日に開催
9
公演終了 12月16日(金) 〜 12月18日(日)
令和座 第5回公演『バビロンに死す』
劇場の区域一帯までを作品の背景に仕立てようと画策する 令和座 第5回公演『バビロンに死す』12月7日(水)からシアターバビロンの流れのほとりにて で上演
21
公演終了 12月07日(水) 〜 12月11日(日)

 ≫もっと見る
 

編集部ピックアップ!

エントレがおすすめする他の舞台



Copyright 2023 Village Inc.