ゆんの業務改善ブログ

①生産性向上 ②業務改善 ③自動化 について情報発信しています。VBAプログラムは本当の初心者から他のアプリケーションを呼び出して使う上級者的な使い方まで幅広いレベルで解説していきます。

2019-09-01から1ヶ月間の記事一覧

VBA OLEを使ってメールを配信する

<2019/12/29誤記訂正。失礼しました>エクセル作業をVBAで自動化した時、その結果をメール配信するところまで自動化できればいいな、と思ったことはありませんか?OLEというワザを使えば簡単にできてしまいます。今回はOLEを使ってメール配信をしてみましょ…

RPA導入前に失敗しないために知っていきたいこと(本質)

RPA

2017年頃からよく耳にするようになったRPA。オフィスワークの自動化の一環として使いこなすためにどんなことを知っておくことが必要なのでしょうか。今回は、実際にオフィス現場でRPA導入作業中(2019/11/10時点)の立場から気がついた、気を付けたい注意点に…

業務改善 やってしまいがちな効果測定の罠

QC活動や業務改善の施策を実施した後、効果の測定はできていますか?今回は業務改善のうち、自動化による効率改善の効果測定について解説します。目次 効果測定の目的 効果測定の罠 効果測定とは何をする事なのか 捕らぬ狸の皮算用 想定された無形の効果には…

業務改善は最短経路で急所をつく

仕事を進めるときに、あえて非効率な方法を採ろうとする人はいないと思います。しかし、なにか別の方法があるのではないかと、探索する姿勢が ある人は多くないように見受けられます。私の本業は業務改善ですが、自動化ツール作成係だと思って私のところに来…

VBAが遅いは勘違い?|エクセルの高速化

あなたの職場でも一つはエクセルのマクロがあるのではないでしょうか。自分でVBAというプログラミング言語を書く事ができれば、自由自在にエクセルとその周辺の作業の自動化をする事ができます。しかし、VBAは遅いという評価をされることがしばしばあるプロ…

プログラミング言語としてVBAが好きだけど、次に進む

エンジニアの人はサービスを作るのが目的。私は業務効率化が目的。目的があればそれにあった手段を選べばいい。日常業務は右を見ても左を見てもエクセルが多いのでVBAを始めました。最初はシートやブックを操作するだけでしたが、次第にメールを送信したり、…

VBAで複数のモジュールを使いこなす② イベント処理のためのシートモジュールとブックモジュール 

シートモジュールやブックモジュールを使いこなすことはできていますか。今回はシートモジュール、ブックモジュールの意義とイベントプロシジャについて解説します。目次 シートモジュールとブックモジュールとは イベントとは よく使うイベントプロシジャ …

VBA Closeメソッド|エクセルブックを閉じる方法とその周辺

VBAにおけるちょっとした便利ツールを開発するにあたり避けることができないエクセルのブックを閉じる方法とその周辺の技術について解説します。単にアクティブなエクセルのワークブックを閉じるだけでなく、一歩踏み込んだ操作を実装してツールの完成度を高…

VBA|簡単に開発できるからこそ、本番移行判定という儀式をちゃんと行う

VBAによる開発は細かな要件定義などを省いてとりあえず核となる部分を作ってしまうのが最短です。VBAは簡単に自動化ツールなど便利ツールの開発に着手できることがメリットです。一方、簡単に開発が可能だからこそ、リリース前に本番移行判定という儀式を行…

VBA 配列を徹底的に解説する (全5回) ⑤動的配列

VBAの配列を徹底的に解説するシリーズもいよいよ最終回です。今回は配列の形が変わる動的配列について解説します。<これまでの配列の解説> VBA 配列を徹底的に解説する (全5回) ①イメージをつかむ VBA 配列を徹底的に解説する (全5回) ②静的配列 VBA 配列…

VBA 配列を徹底的に解説する (全5回) ④多次元配列

VBAにおける多次元配列を解説します。これまで見てきた配列では一階建てのアパートのように一列に並んだ部屋に値を格納していくイメージでした。これからは配列をより使いこなすためにアパートを二階建て、三階建てにしていきます。<これまでの配列の解説>…

VBA 配列を徹底的に解説する (全5回) ③静的配列の初期化と実務的なサンプル

VBAの静的配列の初期化を具体的で実務的なサンプルを使って解説します。配列が初期化できると実務的に便利なことが多いです。難しくないので、順番に見て行きましょう。目次 静的配列の初期化と実務的なサンプルを解説する 配列の初期状態とは 静的配列の初…

働き方改革の本質はより豊かな人生を送ること。生き方改革という名前にした方が分かりやすい

働き方改革という言葉が定着して久しいですね。 これほど日常的に目にすると言うことは具体的に何をしたらいいのか分からないから試行錯誤を繰り返していると言うことなのでしょう。試行錯誤の過程でよりよい概念が生まれてくるのは健全だと思います。私が思…

VBA 配列を徹底的に解説する (全5回) ②静的配列

今回はVBA配列の中で基本に当たる静的配列について解説します。配列と言う言葉自体が初めての方はVBA 配列を徹底的に解説する (全5回) ①イメージをつかむを先にご覧頂くと良いと思います。目次 静的配列をマスターする 静的配列とは インデックスを知る イン…

VBA 配列を徹底的に解説する (全5回) ①イメージをつかむ

VBAを使い初めてしばらくはシート上の操作の自動化が主なので配列の必要性を感じないかもしれません。しかし配列をマスターすると、高速化を図ったり、データを一つにまとめておいて一部を取り出すなどプログラミングの自由度が増し、とても便利になります。…

VBA 自動化ツールの目的を深掘りして、完成度を高める②(入力データ/ユーザーインターフェース編)

自動化ツールを作成するに当たり、その目的を深掘りすることによって完成度を高めることができます。VBA 自動化ツールの目的を深掘りして、完成度を高める①(出力データ編)では出力物に解説しました。今回は、入力データ/ユーザーインターフェースに着目し…

VBA 自動化ツールの目的を深掘りして、完成度を高める①(出力データ編)

VBAの自動化ツールについて、使い勝手の良いツールに仕上げていく手順について解説していきます。目的を深掘りすることで、完成度を高める事ができます。 目次 開発案件の目的を深掘りして完成度を高める 出力データを得ることが目的のプログラムの場合 出力…

VBAで作ったマクロの高速化②|エクセルブックを開いたり閉じたりする事自体は速くならないことの対策

VBAによる自動化で時間が掛かる処理の一つにエクセルブックを開く作業と閉じる作業が挙げられます。VBAで自動化する業務はほとんど全て入力データがあり、何かしらの加工を行った上で保存して閉じるという作業である以上、ブックを開いたり閉じたりする作業…

VBA 動的二次元配列を実務で使う :行方向に要素を追加したい時の解決方法

VBAの配列は有効に使いこなせていますか?セルへの書き込みによるマクロの実行時間を削減するには、配列を利用するのが効果的です。詳しくは VBAで作ったマクロの高速化① 配列を使うで解説しています。今回は転記したい範囲が予めわからない場合の対応方法を…

VBA 既存のツールのプログラムコードを見直す

ツールを一度リリースしたらもう終わりになっていませんか。完成したツールを後から見直すと色々と気づきがあるものです。 今回はプログラムのユーザーからみた挙動を変えずにコードを書き直すリファクタリングについて見ていきます。 プログラムコードはど…

VBA 使い勝手の良いツールを作るコツと、人間力とスキルのダブル成長

せっかく覚えたVBAで自分だけの便利ツールを作ってうまくいくと嬉しいと思います。そのうち周りの人に使ってもらいたいとか、何か便利ツールを作ってあげたいと思うようになってきた人もいるのではないでしょうか。今回はVBAで自分だけ効率化している状態か…

VBA DateSerial関数とバブルソートを使ってシートを古い順に並び替える

VBAによるプログラミングで、DateSerial関数とバブルソートを使ってエクセルのシートを並び替える方法を解説します。一見難しそうな処理も一工夫することで解決する実例を見ていきます。大抵のことはできる、という意識が大切です。目次 DateSerial関数とバ…

VBA フォルダの中をループで検索して、きょうの日付のファイルを開く

VBAでフォルダ内のファイルをループで検索する方法を使っていますか?便利な方法なので、使い方と使いどころをマスターしましょう。今回はきょうの日付が付いたファイルをループで検索します。目次 フォルダの中をループで検索する方法 今回の概要 Dir関数の…

VBAで複数のモジュールを使いこなす①|標準モジュール

VBAで開発を行う際、標準モジュールをうまく使えば、柔軟な設計ができる、作業効率が上がる、メンテナンス性が向上する、といったようなメリットがあります。今回はVBAにおける標準モジュールの役割や使い方について解説します。目次 複数のモジュールを使い…

VBAのクラスを使う② ユーザーが選択したファイルを開く実務的なオブジェクトを生成する

今回はVBAのクラスを使って実務的な機能の実装を試みます。そもそもクラスやオブジェクト、メソッドと言う概念がよくわからない方は、VBAのクラスを使う① クラスを使うためのオブジェクトとメソッドの前提知識をご参照ください。概念をしっかり理解した上で…

VBAのクラスを使う① クラスを使うためのオブジェクトとメソッドの前提知識

VBAはクラスをきちんと理解しなくても、かなりの自動化ができます。そのため、初心者にやさしい一方で、クラスの必要性を感じないため、きちんと分かっていない人も多いのではないでしょうか。クラスが使えるようになるとプログラミングの質が一皮むけてきま…

VBAで作ったマクロの高速化② 内部的に開く、閉じる(失敗⇒元データをテキスト(タブ区切り)で保存しておく)

~~~初めに(2019/10/11追記)~~~ この記事はうまくいかない方法について実験した結果を解説しています。この記事だけでは遅いマクロを早くしたい、という課題は解決しません。エクセルはバイナリファイルという種類のファイルであり、テキストファイルとして開…

VBA 配列でFunctionプロシジャで複数の戻り値を返す

VBAのFunctionプロシジャは一つの戻り値しか返せませんが、配列に複数の値を格納することで、複数の戻り値を返すのと同じことができます。その方法を解説します。目次 配列でFunctionプロシジャで複数の戻り値を返す方法 複数の戻り値を得たい場合の具体例 …

VBA 自分だけのコーディング規約を作るメリット3つ|開発効率向上

VBAでプログラミングをする時、変数名のつけ方や処理の流れに関してルールがあると迷わずに済み、開発効率が向上します。コーディング規約という考え方を取り入れて、開発効率を高めていきましょう。この記事は自分の職場の業務改善の為にVBAについて調べて…

VBAで作ったマクロの高速化① 配列を使う

せっかくエクセル作業の自動化プログラムを作ったのに、実務で使ってみたら思ったより時間がかかったなんてことはありませんか?今回はVBAで作ったマクロの高速化の手段として配列を使う方法を紹介します。目次 配列を使ってVBAの実行を高速化する セルの書…