ゆんの業務改善ブログ

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

VBAの勉強

VBA 上級者から初段へ① 上級を卒業する手順

<文言、誤字修正 2019/11/02>エクセルVBAで上級から初段にステップアップするシリーズです。今回は上級を卒業して初段になる為のステップを解説します。初段まで行けば一通り何でもできるレベルです。頑張っていきましょう。この記事は上級です。 レベルに…

VBA 中級者から上級者へ⑤ デバッグを効率化する簡単なコツ

今回は中級から上級へのステップアップを果たすスピードが爆上がりするデバッグを上達する方法を解説します。<誤解を招かない表現に修正 on 2019/11/01> エクセルVBA中級者から上級者へのステップアップ① 中級を卒業するためのステップで解説したように、…

VBA 中級者から上級者へ④ VLOOKUPが当たらない現象を防ぐ

VBAで中級から上級にステップアップするシリーズの4回目です。今回はVLOOKUPの検索値と戻り値を調べることで、データの取り扱いに配慮する事について解説します。VBAではなく通常のエクセル関数のVLOOKUPがうまくいかない事例を見てから、エラーの回避に取り…

VBA 中級者から上級者へ③ ブックを開く周辺を堅牢にする

エクセルVBAで中級から上級にステップしようとアップするシリーズの3回目です。今回はVBAによる自動化で頻発する、エクセルブックを開く動作の周辺のエラー撲滅とユーザビリティの向上を目指します。この記事は中級です。 レベルについてはExcel VBAの実力(…

VBA 中級者から上級者へ② メッセージボックスを使いこなす

VBAで中級から上級へのステップアップの2回目です。今回は、他人に使ってもらうツールで頻繁に利用されるメッセージボックスで使い勝手を向上させ、メッセージボックス周りのエラーを撲滅していきます。この記事は中級です。 レベルについてはExcel VBAの実…

VBA 中級者から上級者へ① 脱中級への手順

この記事はVBAで自動化ツールの作成を目指している非エンジニアの会社員を読者に想定しています。どんなに小さくてもよいので一つ完成品を作ったことのある中級者を上級者の入り口まで連れていくシリーズです。目次 中級から上級を目指す 中級者とは 中級者…

間違ってない? エクセルのマクロの記録機能の本当の使い方と価値

エクセルにはマクロの記録という便利な機能がついています。しかし、その本当の使い方を知らず、「作業を記録することで簡単に自動化できる機能」と勘違いしてしまっている方が多いように思います。今回はマクロの記録の本来的な使い方(と同時に本当に価値の…

Excel VBA入門 本当のど初心者向け⑤ Endプロパティで最終行の取得

プログラミング自体が初めての入門者を初心者の出口まで連れていくシリーズの最終回です。前回までで、繰り返しと条件分岐ができました。エクセルの実務を自動化するための最低限の武器を既に手に入れたので、今回は表の作成を実際に行っていきます。この記…

Excel VBA入門 本当のど初心者向け④ 条件分岐のIf文

今回は繰り返しと双璧をなす重要文法のIf文について学んでいきます。この記事は初心者~初級者です。 レベルについてはExcel VBAの実力(レベル)を定義してみる 初心者~三段をご参照ください。 目次 もし○○だったら、これは△△ 今回はシンプルに目次が一項…

Excel VBA入門 本当のど初心者向け③ 繰り返しのFor文

この記事は、プログラミング自体が初めての人が、最初に選ぶ言語にVBAを選んだ場合に、入門者が初心者を卒業し、初級者の入口までレベルアップするためのシリーズの3回目です。5回までマスターすれば確実に初級者の入口に立てます。頑張っていきましょう。こ…

Excel VBA入門 本当のど初心者向け② 変数は箱

入門者~初心者向けVBA解説記事シリーズの2回目です。今回はプログラミングの重要な文法に踏み込んでいきます。一回目はExcel VBA入門 本当のど初心者向け①とりあえず何か書いてみるです。この記事は入門~初心者向けです。 レベルについてはExcel VBAの実力…

Excel VBA入門 本当のど初心者向け①とりあえず何か書いてみる

今回は本当のプログラミング初心者が業務効率化をExcel VBAで始める方法とその第一歩を踏み出すまでについて解説します。業務効率化ならExcel VBAから始めるのがオススメな理由 10選 - ゆんの業務改善ブログで解説した通り、エクセルを多く利用している職場…

元エンジニアが実践しているプログラミングのコメントの使い方をまねしたらすごかった

プログラミングの時にコメントを有効に使っていますか?私なりの方法をご紹介したいと思います。プログラミング教室に通ったりエンジニアとして就職した経験があるわけでは無いので、まだまだ使い方はあるかもしれませんが、そんなときはどうぞご教示下さい…

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

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

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関数とバ…