作業を効率化させるExcel VBA Tips集

作業を楽にする為の苦労を惜しまない、本末転倒なプログラマーが実際に業務で使ったExcel VBAのサンプルを公開しています。掲載しているサンプルは関数単位ですので、部品化しやすいと思います。

Ads by Google

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

URLを指定してブラウザを立ち上げる

指定したURLでブラウザを立ち上げるプログラムです。
パラメタにURLを指定して関数をコールするだけです。
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                       (ByVal hwnd As Long, ByVal lpOperation As String, _
                        ByVal lpFile As String, ByVal lpParameters As String, _
                        ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'--------------------------------------------------------------------
' 関数名 : OpenBrowser
' 機能   : 指定URLでブラウザをオープンする
' 引数   : url :URLを指定
' 戻り値 : 正常:無し
'          異常:無し
' 作成日 : 2009/02/18
' 作成者 : lily(http://vbatips.blog37.fc2.com/)
'--------------------------------------------------------------------
Sub OpenBrowser(url As String)

    Call ShellExecute(0, "Open", url, "", "", 1)
End Sub

以下に呼び出し元のサンプルを掲載します。

【“URLを指定してブラウザを立ち上げる”の続きを読む】

ダウンロードページを設けた経緯

Yahooのブリーフケースが使えなくなったことに伴い、当ブログからダウンロードできるページが無くなってしまいました。

元々使い難いもではあったのですが・・・。

というわけで、ダウンロードページを設け居ました。
これから、過去のデータをアップしていく予定です。

作業を効率化させるExcel VBA Tips集 ダウンロードページ

オリジナルツールバーの生成と削除

ワークシート上でオートシェイプを使ったプログラムを作成していたのですが、シートにコマンドボタンなどを貼り付けると、Shapsとしてカウントされるので、ツールバーのボタンをトリガに使うしかないなと思い、このプログラムに至りました。

まー、ブック起動時などに目立たず仕込ませて使うようなアプリに便利だと思います。ワークシート前面を作業領域としたい場合など・・・。

■プログラムの概要

下図のようにツールバーを表示させ、ツールバーのボタンを押下するとマクロを実行させるものです。

オリジナルツールバー

ここでは2つのサンプルを紹介します。
処理概要は以下の通りです。

1.CreateOriginalToolbar関数
 ・ツールバーを生成する
 ・ツールバーにボタンを埋め込む
 ・マクロの登録をする

2.DeleteOriginalToolbar関数
 ・ツールバーを削除する

サンプルプログラムは次の通りです。

【“オリジナルツールバーの生成と削除”の続きを読む】

Excel VBA からブログへ投稿する

Excelの作業内容などをそのままVBAを使ってブログに投稿したい場合に便利です。

1.DLLの入手

以下のサイトからvbXMLRPCの圧縮バイナリファイルを入手します。
EnAppSys - vbXMLRPC.dll - vbXMLRPC Binaries Download
ダウのロードできたらZipファイルを解答します。


2.Visual Basic Editorの設定
Visual Basic Editorの「ツール(T)→参照設定(R)」にて,参照設定ダイアログを開きます。「参照(B)」ボタンをクリックし,以下の2ファイルを選択します。

・vbXML.dll
・vbXMLRPC.dll

参照設定画面でチェックが付いていることを確認します。

参照設定

3.コーディング
ここでは簡単な文字列を投稿するだけのプログラムです。

【“Excel VBA からブログへ投稿する”の続きを読む】

タイトルだよん

本文だよん

HTMLをブログ掲載用のコードに変換するツール

このツールは大したVBAコードが書かれているわけではありません。
単に置換処理をしているだけです。

ことの発端は、あるブログでHTMLソースコードを掲載したくて作りました。HTMLソースコードを掲載する場合、<記号や>記号の変換はもちんのこと、<pre>タグを使うのでTABも置換してやる必要があります。HTML自体を秀丸等で開発する場合は、TAB→スペースに自動変換してくれますが、僕の使っている開発環境に変換機能が付いておらず、VBAで自作しました。

このFC2ブログをはじめ、ある程度ブログ投稿画面で変換は行えますが、TABをスペースに変換してくれる機能はありません。まして、対象がMT4の為、デフォルトで<記号や>記号の変換機能は付いておりません。

【概要】
「ソース」のテキストボックス欄に、HTMLコードをコピー&ペーストし、変換ボタンを押下する。「変換結果」テキストボックスに変換後のコードが出力される。

チカン画面

【こんな時に便利】
・手軽にまとめて置換したい

【ダウンロード】
HTMLコード置換.xls

【注意事項】
<pre>タグでブログ掲載を考慮して、TABはスペース2つ分に変換してます。

ソースは至って、シンプルなので、自由にカスタマイズしてください。

【“HTMLをブログ掲載用のコードに変換するツール”の続きを読む】

資料作成中、頻繁にシートをまたぐ回数が多くなってきた場合に良いかも・・・

Excelで設計書やテスト仕様書などを作成していて、シート数が多くなってくると、
前のシートで何て書いたっけ??と、Ctrl + PageUpまたはPageDownを連打して他のシートを参照し、そのわずらわしさにイラっとしたことはありませんか?
そして、ちょっとでもそのイライラを改善する為に、リネームコピーして2つExcelファイルを画面に表示させ、見ながら編集ってしたことありませんか?

参照用と編集用ブックを開いて


そして、次第に集中力が切れてくると・・・どっちが編集中のファイルだったっけ??
と混乱の原因にもなります。

上記改善策の流れを整理すると以下のようになります。

1.作業中のブックを上書き保存
 ↓
2.マイコンピュータより、1のファイルをコピーする
 ↓
3.2のファイルを参照用として開く

で、”どっちが編集中だったか?”とファイルを見分けるよりも、誤動作を防ぐため参照用シートは読み取り専用であれば、上書き保存をしようとした時に、気づくことができます。

これらを自動化させるには、以前紹介したVBAを組み合わせれることで可能です。

作業を効率化させるExcel VBA Tips集 ファイルを読み取り専用に設定する
作業を効率化させるExcel VBA Tips集 VBAから作業中のブックをバックアップする

以下に組み合わせた場合のVBAを掲載します。
【“資料作成中、頻繁にシートをまたぐ回数が多くなってきた場合に良いかも・・・”の続きを読む】

ファイルを読み取り専用に設定する

このVBA単品では作業の効率化は行えないかも知れませんが、
他のVBAと組み合わせることで、効率化が図れると思います。
その組み合わせ例については、次回に。

今回紹介するVBAは保存されているファイルを読み取り専用に設定する方法です。

VBAで行う場合、FileSystemObjectを使います。

【“ファイルを読み取り専用に設定する”の続きを読む】

VBAから作業中のブックをバックアップする

Excelで設計書などを作成している場合、
定期的にバックアップしたくなります。

おそらく、以下のような手順で行われると思います。

1.作業中のブックを上書き保存
 ↓
2.マイコンピュータより、1のファイルをコピーする
 ↓
3.ファイル名を適当な名前にリネームする

下記に紹介するVBAをツールバーに登録したり、ショートカットキーに割り当てていれば、
ボタン一つで、バックアップが作成できるので、上記1〜3の手順を1つの動作で行えます。

【“VBAから作業中のブックをバックアップする”の続きを読む】

Excel上の図形をブログにアップロードする

以前、紹介した下記の記事。

作業を効率化させるExcel VBA Tips集 選択した図形をJPEG画像として保存する

そもそも、何がしたかったか?というと、
ブログに掲載したい画像をExcel上で作成し、それを画像ファイルとして保存、
保存した画像ファイルをブログへアップロードすることを効率化させたいと思っていました。
その流れが下記の手順となります。

[Excelオートシェイプをブログへアップロードする手順]
1.Excelで図形を作成する
 ↓
2.Excelで図形をコピー
 ↓
3.グラフィックソフトを開
 ↓
4.コピーした図形を貼り付ける
 ↓
5.JPEG指定で保存する
 ↓
6.ブログの管理画面を開
 ↓
7.JPGファイルをブログへアップロード


そこで効率化させるポイントとして、
Excel上で作成したオートシェイプの図形をJPG画像ファイルとして自動保存させるという点でした。(上記赤字部分参照

今回はアップロード自体も自動化させようという企みです。(上記青字部分参照

で、前回紹介したコマンドプロンプトの起動が役に立ちます。

で、なんでコマンドプロンプトが必要なのか?というところなんですけど・・・

理想はVBA上でアップロードもすべてやりきれたら良いのですが、僕がやってる効率化のプログラミングで、インターネットにかかわる部分はJava言語で行ってます。
で、Javaで作ったアプリを実行させるにはコマンドプロンプトにてコマンド実行させてやる必要があるということです。

以下が僕が掲載しているもう一つのブログです。
もしかしたら使えるかも?Java Tips集 XML-RPCを使ってJavaアプリからブログへファイルをアップロードする

上記リンクのページに記載しているJavaアプリをコマンドで実行してやると指定ファイルをブログへアップロードしてくれるというソースについて記載しています。
このJavaアプリは以下からダウンロードできます。が、JavaなのでもちろんJREがインストールされていることが前提です。

【ダウンロード】
任意の場所にダウンロードして解凍してください。classファイルとJarファイルが展開されます。
解凍先パスは後述のサンプルで設定するので覚えておいてください。
ファイルアップロードJavaアプリ.lzh

【Javaアプリ制限事項】
・現状、上記のアプリでは日本語ファイル名のアップロードが行えません。原因究明中です。

下記掲載のVBAからコマンドによりJavaアプリへパラメータを渡してコールすることになるのですが、コメント文中にある「ユーザ設定箇所」に初期値を設定してやる必要があります。
設定する項目は以下のものです。

【“Excel上の図形をブログにアップロードする”の続きを読む】
次のページ

FC2Ad

FC2ブログ