日報データを週報データに変えるSUM関数をイミディエイトに書き出す

Excel で日報データを週報に変えて、長期間のグラフを見やすくしようとした。SUM()関数を使って日報のデータを週報に集計すればいいのだが、手入力で範囲指定するとミスが出るのでVBAで書き出した。

ただし、なぜかVBA でタブが扱えなかったので、区切りが半角スペースになっている。これをテキストエディタの検索置換でタブに変えて、Excel のセルに貼れば、狙った通りの週報に変わる。

条件

セルはB2 とC2から下方向に日報データが並んでいるものとする。

コード

 

文字の切り取りは、この記事のものを使わせてもらった。
VBAで文字列の右側や左側から指定文字数削除する

Outlook のメールを読んで、指定した情報をVBAを使って抜き出す

データベースを使わない、または外部のウェブサービスからのメールを受信していて、そのメールの中から住所を抜き出し、顧客分布を測定したい時がある。Excel とOutlook ならVBA が使えるので、それを一部自動化した。

この解説は、限られた条件で使ったものなので、サンプルプログラムとして記録を残す。

前提

Oltlook の受信トレイに「予約」フォルダ、その直下に「A店」と「B店」のフォルダがある

受信トレイ
└予約
├A店
└B店

それぞれのフォルダはOutlook のルールで、件名ごとにフォルダ分けされるようになっている

「A店」と「B店」に保存されたメールの中に、「住所」情報がある

実装したい機能

指定したフォルダを次々に読み込んで、住所を抜き出し、都道府県、市町村、区、その他で横方向のセルに挿入する

セルは横方向が属性、縦方向がメールごとの内容にして、データを表に入力する

VBA スクリプト

 

 

動作

スクリプトを実行すると、シート”email”に結果を書き出す

Excel の複数のシートで、セルの頭出しをしたい

データの整理で、Excel を使って、別のシートからのデータをコピペする作業がある。毎回決まった位置に目視で確認しながらマウス操作で選択していたが、この頭出しをVBA で実現した。

利用する言語

Visual Basic for Applications (VBA)

実装したい内容

決まったシートから順番に、指定したセルの位置を選択状態にしたい

スクリプト

内容

  • セル頭出し関数F1st() などで、選択するセルの位置を指定
  • FocusCell() でシート4から順番にシートを選択して、指定されたセルを選択する