質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

5回答

5356閲覧

Excelでこんなマクロ組めますか???

kotodama

総合スコア33

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2018/08/30 07:21

初心者です。
下記のようなマクロ作成できますか??
どなたか助けてください。

Excelの申請用紙のファイルがあり、そこに申請というボタンを設け、そのボタンを押すと、あらかじめ指定したアドレスにメールが送られ、
そのメールが送られてきた人は申請内容を見て、承認するなら承認ボタン・承認しないなら、承認しない みたいなボタンがあり、それを押す。
その結果を集計してメールが送られてきた、人や申請者が確認できるようなマクロってできませんか??

確認方法は、
申請ファイルの別シートに
氏名 部署 承認
みたいになればいいです。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukihisa

2018/08/30 07:37 編集

ひとつのブックで申請⇒承認、集計と言う形でしょうか。それとも全部分けるのでしょうか?申請承認をまとめて集計は別なのでしょうか。そしてDBに登録するのかブックにそのまま書くのかなど、やりたいことに対するアプローチが多岐に渡りすぎてなんとも言えません。こうしたらできる、と言っても「その環境がない」とかなってしまう気がします。とりあえずエクセルのみでは無理、というか運用できないです。そしてプログラミング初心者という質問がちょうど2年前です。3年目にもなって初心者はちょっと通用しないと思います。。。
kotodama

2018/08/30 07:41

申し訳ございません。全部1つのExcelファイルでやりたかったですけど、無理ですよね
yukihisa

2018/08/30 07:54 編集

それだとボタンが誰にでも押せちゃいますけど権限とかきっちり設定できますか?そもそも集計するのにひとつのブックじゃ運用できないですよ。申請、承認、集計時に常に「マスターブック」を回さなきゃいけなくなってしまいます。承認結果を見るにも全部同じブックだったら見てはいけない人が見てしまったりとか、その辺りのセキュリティとかもがばがばになりますよ。
guest

回答5

0

申請ボタンを押したら指定メールアドレスにファイル添付したメールを送信

これはがんばればできます
参考:CDOでメール送信

メール受信者が添付ファイルの内容を見て、承認する/しないのボタンを押す

これは割と簡単です

その結果を集計して

ここでハードルがぐっと上がります

誰がどのように集計しますか?
きっと何らかのデータベースが必要で、そこに入力し、何らかの方法でカウントすることになります
とてもエクセルファイル1つでどうにかできる話ではないです

例えば、1個のファイルを順繰りに送受していくなら、そのファイルに集計を蓄積していくことも可能かもしれません
しかし、お互いの信頼関係の中でうまく運用することが前提です

誰がいつ何をしたかを明確に、なりすましや改ざんができないように、といったレベルを求めるなら、エクセルなんてレベルでなくシステム1個作る規模になると思います

投稿2018/08/30 08:33

takito

総合スコア3111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kotodama

2018/09/01 02:39

ありがとうございます
guest

0

ベストアンサー

お困りの点はExcelVBAからメールを送信する箇所でしょうか?
Excelが導入されているということから、Outlookをメーラとしてお使いでしたら、
以下のオブジェクトを使用することでメーラの操作が可能です。

VBA

1Set outlookObj = CreateObject("Outlook.Application")

もちろんJavaScriptやVBScriptで記述することも可能です。

VBA

1Set js = CreateObject("ScriptControl") 2 3' 言語をJavaScriptに設定 4js.Language = "JScript" 5 6' SrciptControl.Evalを使用してメール送信をする関数オブジェクトを生成 7Set func = js.Eval("function f(__arg) { ・・・ }; f;")

イメージとしては、簡易的な決裁システムのようなものでしょうか?
もしそうならば、いつ誰が承認したかといった情報を永続的に残す必要があるのではないかと推察します。
情報を永続的に残す場合にはやはりデータベースが必要となりますので、Excel+VBAで目的を満たせるかについては僭越ながら再考頂いた方が良いかと存じます。

もし、外見がExcelライクであればよいということでしたら、grapecityからwijimoというJavaScriptコントロールも出ています。
有償の製品ですが、試用も可能ですので参考にして頂けたらと思います。

投稿2018/09/02 07:33

Simb

総合スコア118

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

これはExcel(VBA)で処理をすると云うより、むしろGoogleフォームでの解決をお勧めします。

問い合わせたい内容のアンケートを作成し、そのGoogleフォームのURLを対象者にメールし、Googleフォームにアクセスしてもらって回答して貰えば、必要な情報を全て回収し、尚且つ集計も自動で出来ます。

Googleフォームでのアンケート作成はとても簡単で誰にでも出来ますので、是非検索して簡単なアンケートを実際に作ってみることをお勧めします。

投稿2018/08/30 09:25

brainbrown

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kotodama

2018/09/01 02:38

ありがとうございます
guest

0

OneDrive に置いて Excel Online のアンケートフォームを使うと良さそうです。

アンケートフォームをExcelで作成して集計する

ちなみに私の認識では、初心者とは自分で作り始めた人のことで、人に頼んで作ってもらう人は顧客と呼びます。

投稿2018/08/30 07:39

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

「承認ボタン」などはメールに付けるのでしょうか(違ったらお知らせください)。

メールにつけるボタン、だとしたら基本的にはHTTPのリンクになるわけですが、それで何か処理しようとすれば受け取るHTTPサーバ(もしくは、それに相当するようなサービス)が必要となります。Excelマクロだけでは実現できません。

投稿2018/08/30 07:34

maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kotodama

2018/08/30 07:40

回答ありがとうございます。 ボタンはExcelファイル内でOKです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問