複数のExcelのファイルを一気に開くVBA

グループウェアが浸透すれば、脱Excelして、2度手間入力など劇的に減ります。

ただ、なかなかグループウェアを導入できない環境であると、

いくつもファイルを開いて作業をすることがあります。


Pythonも便利なんですが、環境を整えたりすることが大変なこともあるので、今回はVBAだけでできるものです。

A1からA3セルにファイルパスを入力しておけば、VBAマクロで開けるようになっています。

今は、Excelのみで、WordやPDFなどには対応させていません。

ファイルがないときには最後にメッセージが出るようにしています。

以下コード

メール送信時気を付けている事

今回はメールの送信時の記事です。
電話がかかってくる頻度は少なくなったものの、できればチャットツールを使ってほしいのですが諸事情があり業務においてはメールが主流となっています。さて私見ではありますが、もらってうれしいメールをまとめます。
  •  内容が件名で分かる。件名で要約されている。
  •  後日検索もしやすい。
  •  スレッド表示で返信転送の件数が増えたわりに内容が短くわかりやすい。
こんなところでしょうか?逆にメールを送るときには下記のようにしています。

件名について

  • 頭の2文字は内容によって統一しておく

 並び替えや振り分けに対応できるため


  •  件名は前半で意味が読み取れるようにする

 件名の表示の文字切れせず理解できるようにしておくため


  • 返信の際にむやみに件名を変更しない

 「スレッドとして表示」が崩れる原因となるため

  

本文について

  • 本文で事足りることを添付ファイルとしない

 メール検索で出てくるようにするため

 

著名について

  • スクロールが少なくてすむように著名を短くしておく

 例++++++区切り記号 

 会社名 所属

 役職 名前

 E-mail

 +++++++区切り記号


返信や転送の際について  

  • スクロールが少なくてすむようにスペースを省略する
  返信が連続して続く際には 著名は省略する

  • 返信や転送の際、不必要に本文に残ったcc情報などは削除する
  転送の連続なのにずっとccが残ったままのメールはちょっと引きます。


Excelで一定のファイルを各フォルダへコピーするマクロ

経緯と概要

 ある業務のスタート時に、一定のファイルを各フォルダ毎に用意し、そのファイル名を変更するといった事があります。以前は、フォルダに先にファイルをコピーし、各フォルダにてファイル名を変更するといった事を行っており、大変手間がかかっていました。
 それから、一定のファイルを一括でファイル名の変更をしていましたが、それでも各フォルダにファイルをコピーする手間がありました。

 今回は、Excelにて、フォルダにある一定のファイルを各フォルダに振り分けてコピーするマクロです。これまでのようにフォルダを開いたり閉じたりすることや、フォルダ毎にファイルを選ぶ必要がなくなり、業務効率が向上しました。

マクロの設定の説明

Functionの関数の引数は3つ
  1. フォルダの判定のキーワード(このマクロでは コピー先に振り分けれるように 契約書用 申請用 図面用 と入力しています。判定はB列の4行目から行っています。)
  2. 元のフォルダパスのセルのアドレスです。(このマクロでは D1に元のファイルのアドレスをいれています。) 
  3. コピー先のフォルダパスのセルのアドレスです。(このマクロでは D3 J3 P3に各コピー先のアドレスを入力しています。)
マクロのデータについて
  • A列4行目からB列27列目まで入っています。 
  • A列はD1にあるフォルダパスのファイル名を入力しています。
  • B列はフォルダの振り分け先判定用です。 
  • 上書きの警告を表示するようにしていますが、「いいえ」を選択すると、それ以後の処理も止まります。
下記 画像のような状態にしています。

感想

今回のマクロもボタンで登録して行っているため、大変便利になりました。
(別のファイル名の一括変更のマクロと組み合わせているので、更に楽になっています)
コードも数行ですので、編集しやすいと思います。

以下コード

Excelでシート名の変更とシートを追加するマクロ

概要

Excelのシートを、〇月〇日~〇日というシート名に変更するマクロです。  
1つ目のシートから最後のシートまで、F1の値をシート名にしています。
もし同じ名前のシートがある場合は処理しません。
前のシートのA4のセルが日付の基準のセルとしています。

F1のセルの数式 は
『=TEXT(A4,"m月d日~")&TEXT(A4+6,"d日")』
としてセルの表示形式を整えています。 
これでA4のセルの値を基準として 〇月〇日~〇日 となります。
(このF1のセルがシート名となります。)

シート名の変更のコード

 

シート追加のコード  

また、シートを追加するマクロも作っています。
前のシートのA4のセルが日付の基準のセルとしています。
F1の値をシート名に変更しています。

 

Excelにて重複したセルを削除するマクロ

Excelにて重複したセルを削除するマクロです。

クエリなどで他のデータを読み込んで、ピポットテーブルで内容をみていますが、
メールアドレスなど項目の重複を避けたい時がありました。

クエリやピポットテーブルやには既にフィルタが適用しているし、クエリやピポットの結果による重複を避けて調べたい。ただ、もう一つクエリやピポットを作るほどでもないので、ちょっとマクロにて処理してデータを取り出しています。

マクロの内容

「データ元ファイルパス」のシートのC行をクリア
「ピポット」のシートのG行をコピー
「データ元ファイルパス」のシートにて
C行に値で貼り付け
C行で重複した行を削除(1行だけですが)
処理したセルをコピー(次の操作につなげるため)
C3セルを選択して、上の方を表示(次の操作がしすいため)

以下コード

pythonで強引にWEB入力する方法

WEBの入力フォームの後半が毎回一定の入力であるため、途中から自動操作で入力したい場合があります。


この自動操作をpythonにて実行するにあたり、最初のログイン状態からでは2段認証や条件の分岐が多すぎるため、5秒以内に定位置にマウスをもっていくことで、Webページの途中から強引に入力しています。


Excelにあるセルを読み込むことと、キーボード操作をTABやEnterなどを自動で押し、また、ちょっとした分岐も作成しています。
マウス座標での操作は画面の解像度によって左右されるため、カーソルの移動はTABとShift+TABなどをメインにしています。

以下pythonのコード 

メール本文をExcelで自動化

Outlookの特定のメールフォルダを分析するExcelマクロ



毎日定型文にて定時メールが届き、毎日入力しなければならない場合、マクロボタン1つで入力から分析までできるようにしました。

内容をお見せすることができないのが申し訳ないです。

そのうちに黒塗りしてお見せします。

ーーーーーー

Excelの「開発」「Visual Basic」「ツール」「参照設定」にて

 Microsoft Office ? Object Library をチェック


Excelで今回の記事に関係するシートは3つ【メールデータ】【分析結果】【ピボット】

【メールデータ】のシートはOutlookから「受信日時」「件名」「送信者」「送信元メールアドレス」「本文」を取得しており、「定期メールデータ」というテーブルを設定

【分析結果】のシートは【メールデータ】のシートの「定期メールデータ」というテーブルからパワークエリにて行列の整理

【ピボット】のシートは【分析結果】のシートをピボットテーブルにて「受信日」と「件名」と各値を表示されるように調整


Excelにマクロをボタン登録しておく


Outlookの対象フォルダは「●●●●」に目的のメールを仕分けのルールで振り分けておく

ーーーーー

以下コード

ワンタイムパスワード入力中は一時停止して自動化


 Webブラウザーの入力フォームを何度も行うことがあります。csvなどにてデータの流し込みができないサイトであった場合は、手入力を何度もしなければならず、せっかくの手元にあるデータを生かすことができませんでした。

 Webブラウザーの自動操作のためにseleniumを使ってはいましたが、selenium実行後にはブラウザーが閉じてしまう事と、ワンタイムパスワードや2段認証などセキュリティの高いサイトには対応しにくいのが難点でした。

 ログイン後の操作にも必要性が生じてきたので、いったん処理の途中でメモ帳を開いて一時停止中に入力することで自動化を進める事にしました。



以下Pythonのコード

キーボードで一度に複数のファイルを開く方法

 今回はキーボードで一度に複数のファイルを開き、作業環境を整える方法についての記事です。



 作業環境を整える際に複数のフォルダやファイルを開いく必要があると思いますが、以前の記事で紹介したマウスのカーソルを動かすより、キーボードをつかって実行すると素早くできます。

 過去の記事は、「ワンクリックで複数のフォルダやファイルを開く方法」をクリック


 また、コルタナも使って行えないかやってみましたが、失敗することや、話せない環境であったり、時間がかかることから、まったく使わなくなりました。コルタナについては、他の作業においても音声入力の割合が増えてくるなら、状況は変わってくると思います。

 過去の記事は、「コルタナを使って複数のフォルダやファイルを開く方法」をクリック


実際の手順

「複数のフォルダやファイルを開くショートカット」を作成する

 作り方は過去の記事を参照願います。「ワンクリックで複数のフォルダやファイルを開く方法」をクリック

先ほどのショートカットをWindowsのスタートメニューに登録する

 場所は環境によって若干変わるかもしれませんが、「C:\ProgramData\Microsoft\Windows\Start Menu\Programs」と思います。

このフォルダの中に先ほどのショートカットを置いてください。

 ショートカットキーを設定する

 ショートカットを右クリックしてプロパティの画面から、ショートカットキーを設定してください。今回作るショートカットが「初期設定」という名前なので、、ここでは「s」にしています。「s」とキーボードを入力すると、「Ctrl+Alt+s」の3つキーを同時に押すことで動くようになります。


順番にキーを押して操作できるようにショートカット名を変更しておく

3つボタンを押す以外に、ショートカットの名前の頭に「sss」のような半角英字を入れておくと便利です。キーボードを「Windowボタン」「s」を3回順番におすと、最も一致する検索結果に出てくるはずなので、「Enter」に押すことで動くようにもできます。


最後に

いかがでしたでしょうか?まだ、だいぶ省略していますので、ちょこちょこと詳しくして更新していきます。過去の記事もちょっとずつ、こちらに引っ越ししてきます。

Excelでファイルをコピーし、名前を付けて保存してからマクロ実行をワンクリックで実行

 他の人とファイルを共有していると、元のファイルに手を加えることができないことがあると思います。 しかし、いつも決まりきったデータを編集しなければならないことがあると思います。



そんな時は、みなさんどうしていますか?

元のファイルのフォルダを開いて、元のデータファイルを選んで、ファイルをコピーして、別の場所を選んで、貼り付けて、ファイルの名前を変えてから編集していますか?

 もしくは、

元のフォルダを開いて、元のデータファイルを選んで、開いて、別の名前で保存して、編集していますか?


普通にすると何手順も必要でしたが、「ファイルを開くところから、編集する」ところまでを、下記のコードのようにして、自動化しています。


Excelには、「マクロ用」というシートと、

A1のセルにはデータ元のファイルのファイルパス

例 C:\Users\●●●●\OneDrive\●●●●\●●●●.xlsx

A2のセルにはコピー先のファイルのファイルパス

例 C:\Users\●●●●\OneDrive\Desktop\□□□□.xlsx

「色付け」というマクロ

を設定しています。


 月初に1回だとしても年12回だけですが、決まりきったルーティンワークはできるだけ自動化していってます。一つ一つのコードで短縮できる時間はわずかではありますが、ちょっとずつ重ねると本当に楽になります。

 できればマクロ実行自体を自動化したい、そもそもマクロなどを実行しなくていい環境にしたいところではありますが・・・

 マクロをボタンに登録してワンクリックにて実行し、その間にトイレに行ったり、お茶したりして、次の構想を練っています。

以下コード

Word VBAマクロ事例 次のファイルを保存してPDF出力 

 Wordの差し込み文章で用意されたものを、PDF化する際に、Wordのマクロにてパパっと自動化できるようになりました。

 今までは、差し込み文章の個別編集、ファイル名変更、印刷ボタンを押し、出力先をPDFに選択して、コメントを消して、保存して、ファイル名を変更してといったことをやっていました。



 下記をWordマクロを、クイックツールバーに登録するとワンクリックでできるようになりました。 

以下コード

複数のフォルダをワンクリックで開くpythonをexe化してみました。

複数のフォルダやファイルをワンクリックで同時に起動してその際に右や左の画面に移動したりしていましたが、それすらも省略したいなーと思い、ちょっと調査。 bat、ps1、vbsでは挫折したので、pythonでコードを組んで、exe化しました。 だいぶ強引ですけどね。 pythonの...