エクセルの神髄
エクセル新着記事一覧

エクセル(Excel)マクロ(VBA)記事全体での新着記事一覧です
最終更新日:2020-01-10

エクセル新着記事一覧


VBAで写真の撮影日時や音楽動画の長さを取得する|VBA技術解説(2020年1月10日)

写真の撮影日時、音楽や動画の再生時間、これらをVBAで取得します。写真や音楽、動画をフォルダにまとめて入れている人は多いのではないでしょうか。しかし、なかなかちゃんと管理できていなかったりしませんか。
ツイッターで出されたVBAのお題をやってみた|エクセル雑感(2020年1月13日)
ツイッターで出題されたVBAの問題をやってみました。ツイッターのエクセルおよびVBA関係の人達の間では、いろいろと面白く勉強になる問題を出し合うという事が行われています。フォローして参加してみると楽しいと思いますよ。
イベントプロシージャーの共通化(Enter,Exit)|ユーザーフォーム入門(2020年1月13日)
ユーザーフォームのVBAでは、同じイベントプロシージャーを何個も作成することが多々あります。テキストボックスを複数個配置して同じイベント処理を実装する時、全く同じイベントプロシージャーをコピペで何個も作るといったことが必要になります。その解決方法として前回、第23回.イベントプロシージャーの共通化 WithEventを使った方法を紹介しましたが、
Rangeオブジェクトの論理演算(差集合と排他的論理和)|VBA技術解説(2020年1月10日)
複数のRangeオブジェクトの重なっている範囲や、結合した範囲等々、Rangeオブジェクトを集合として、その集合演算の結果のRangeオブジェクトが必要になってくる場合がVBAでは良くでてきます。VBAで標準でサポートされているものとしては、和集合:Unionメソッド 積集合:Intersectメソッド この二つがありますが、
イベントプロシージャーの共通化|ユーザーフォーム入門(2020年1月7日)
ユーザーフォームに部品コントロールを配置していくとき、同種のコントロールを繰り返し何個も配置することは良くあります。コピペしながらようやく配置し終わったと思ったら、今度はVBAで同じイベントプロシージャーを何個も作成しなければならなくなります。
コントロールの動的作成|ユーザーフォーム入門(2020年1月6日)
ユーザーフォームは、事前に画面デザインを考えて、それにそって部品コントロールを配置するものです。しかし、ユーザーの操作に応じて、動的に部品コントロールを変更したい場合があります。このような場合の対処方法としては、大きく以下の2通りの方法があります。
Evaluateメソッド(文字列の数式を実行します)|VBA技術解説(2020年1月5日)
Evaluateメソッドは、Excelで使用する名前をオブジェクトまたは値に変換します。簡単に説明すれば、セルに入れる数式を文字列としてVBAで実行できます。Evaluateメソッドの構文 式.Evaluate(name) 式には以下が指定できます。
エクスポート(PDF/XPS)|VBA入門(2020年1月2日)
シートの内容をPDF/XPS出力するには、VBAではExportAsFixedFormatメソッドを使用します。このメソッドが使える対象オブジェクトは複数あります、ブック、シート、セル、それぞれにExportAsFixedFormatメソッドが存在するので、印刷範囲によって使い分けてください。
分析関数(OVER句,WINDOW句)|SQL入門(2019年12月25日)
分析関数はグループ内の指定された範囲で集計を行い、結果を集計元の各行に戻すことができます。分析関数はSQLとしては比較的新しい機能で、ウィンドウ(Window)関数とも呼ばれます。。サブクエリーを複数組み合わせなければできなかったものが比較的簡単なSQL文で実現できるようになります。
取得行数を限定するLIMIT句|SQL入門(2019年12月21日)
SELECT文の結果は対象行が全て出力されますが、「先頭の何件だけ取得したい」このような時に使うのがLIMIT句になります。さらにOFFSET句を合わせて使う事で、途中の何行目から何件という指定もできます。LIMIT句が使えるデータベースは限られています。
外部ライブラリ(ActiveXオブジェクト)|VBA入門(2019年12月21日)
VBAには外部ライブラリ(ActiveXオブジェクト)を操作する事が出来る仕組みがあります。ActiveXオブジェクトとは、オートメーションをサポートするアプリケーションがオートメーションインターフェイスを通して他のアプリケーションに公開しているオブジェクトです。
WITH句(共通テーブル式)|SQL入門(2019年12月18日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までに、サブクエリの基本的な使い方やサブクエリをネストした場合のSQLの書き方について説明しました。今回は、このサブクエリをより分かり易く簡潔に書くことができるWITH句について解説します。
Excel2003以前のアクセスキー一覧|VBAリファレンス(2019年12月17日)
Excel2007以降でもExcel2003以前のアクセスキー(アクセラレーションキー)を使用することができます。Excel2007以降のリボンへのアクセスキーとは別に、旧Excelのアクセスキーも引き続きサポートされています。アクセスキー(アクセラレーションキー)とは メニューの横に書かれているアルファベットを、
サブクエリのネストとSQLコメント&整形|SQL入門(2019年12月15日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回は、サブクエリの基本的な使い方を説明しました。FROM句で使って他のテーブルとJOINする書き方、WHERE句のINに指定する書き方等々。今回は、サブクエリを多段階にネストする書き方を説明します。
サブクエリ(副問合せ)|SQL入門(2019年12月14日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までで、基本的な部分については一通り説明しました。今回は、より便利にSQLを使えるように副問合せ(サブクエリ)を解説します。サブクエリが使えるようになると、SQLのすごさがより実感として分かってくるはずです。
トランザクション処理|SQL入門(2019年12月11日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までは、1つのテーブルにデータを追加/更新/削除してきました。システム構築していく上では、複数のテーブルへの処理は必要不可欠になります。しかし、このとき注意しなければならない問題があります。
インデックスを作成して高速化(CREATE INDEX)|SQL入門(2019年12月9日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回の、他のテーブルのデータで追加/更新/削除では、UPDATEで多大な時間がかかっていました。この時間は、テーブルのインデックスを作成することで劇的に速くできます。
他のテーブルのデータで追加/更新/削除|SQL入門(2019年12月8日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までに、データの追加/更新/削除を解説しました。・INSERT ・UPDATE ・DELETE ただし、全て単一のテーブルだけで完結しているもので、データはエクセルのシートにあるデータを使うものでした。
データの削除(DELETE)|SQL入門(2019年12月7日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までにやってきたことを大きく分けると、・テーブル作成 ・データ挿入 ・データ取得 ・データ更新 データベースにテーブルを作成し、データを入れて、データを取り出し、データを更新しました。
データの更新(UPDATE)|SQL入門(2019年12月6日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までにやってきたことを大きく分けると、・テーブル作成 ・データ挿入 ・データ取得 データベースにテーブルを作成し、データを入れて、そしてデータを取り出しました。これでデータベースを最低限扱う事ができるようになりましたが、一度入れたデータを変更したり、
複数のSELECT結果を統合(UNION,UNION ALL)|SQL入門(2019年12月5日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回のJOINでは複数のテーブルを横に結合するものでしたが、SQLではデータを縦に連結することもできます。SQLのSELECTした結果は1つのテーブルと同様に見ることができます。
テーブルを結合して取得(INNER JOIN,OUTER JOIN)|SQL入門(2019年12月4日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回データベースの正規化を説明し、マスターデータとトランザクションデータとしてそれぞれのテーブルを作成しました。分割されたデータは結合しなければ必要な情報がそろいません。
データベースの正規化とマスタの作成|SQL入門(2019年12月3日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までは1つのテーブルのみを扱ってきましたが、これからは複数のテーブルを扱っていきます。複数テーブルの情報を必要に応じて結合して取得できるようになると、よりデータベースおよびSQLの利便性が感じられると思います。
データベースにおけるNULLの扱い方|SQL入門(2019年12月2日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回はSQL関数と演算子について解説しましたが、その中でNULLに関するものがでてきました。「NULLについては、次回詳しく解説します。」と記載、今回はNULLについて解説します。
オブジェクト変数とは何か|VBA技術解説(2019年12月2日)
VBAを使い始めてからある程度進むとオブジェクト変数を必ず使い始めることになります。しかし、オブジェクト変数をどうやって使ったらよいのか、オブジェクト変数とはどういうものなのか… ここの理解で苦しんでいることが多々あるようです。VBA入門は現在137回までありますが、オブジェクト変数については第52回.オブジェクト変数とSetステートメントででてきます。
SQL関数と演算子|SQL入門(2019年12月1日)
エクセルVBAでデータベースを扱うためのSQL入門です。前2回でSELECTをやりましたが、その中で登場したCOUNTやSUMはSQL関数です。今回は、SQL関数と演算子について、代表的なものについて使い方を解説します。
データの取得:集約集計、並べ替え(DISTINKT,GROUP,HAVING,ORDER)|SQL入門(2019年11月30日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回もっとも単純なSELECT文(SELECT…FROM…WHERE)を紹介しました。これは、1行のデータはそのまま1行のデータとして、順番はDBに保存されている順で取得されるものでした。
データの取得:条件指定(SELECT,WHERE)|SQL入門(2019年11月29日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回で100万件のデータも高速にINSERTすることができるようになりました。これからは、INSERTしたデータをいろいろな方法で取得していきます。
データの挿入:バルクインサート|SQL入門(2019年11月28日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回でデータをINSERTすることができるようになりましたが、処理時間に不満がありました。せっかくデータベースを使うのでしたら、エクセルで扱いに困ってしまうような大量データをストレスなく扱いたいところです。
データの挿入(INSERT)と全削除|SQL入門(2019年11月26日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までにテーブルを自由に作れるようになり、ワークシートからの自動作成も出来上がりました。今回は作成したテーブルにデータを追加(INSERT)していきます。
テーブル名変更と列追加(ALTER TABLE)とテーブル自動作成|SQL入門(2019年11月25日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までにテーブルを作成したり、削除したりできるようになりました。今回は作成したテーブルの名称変更とカラム(列)を追加するSQLを解説します。そして、エクセルのシートにテーブル情報を記入して、そこからテーブルを自動作成するVBAも紹介します。
テーブルの作成/削除(CREATE TABLE,DROP TABLE)|SQL入門(2019年11月24日)
エクセルVBAでデータベースを扱うためのSQL入門です。前回までにデータベースを作成し、ADOで接続できるようにしましたので、今回から実際にSQLを発行して、データベースを操作していきます。テーブルを作成したり削除する場合のSQLについて解説します。
データベースに接続/切断|SQL入門(2019年11月23日)
VBAでSQL発行するにあたり、まずはSQLを実行するデータベースに接続する必要があります。このSQL入門では、DB接続にはADOを使用します。SQLの発行とSQLの実行という言い方の違い クライアントでSQLを発行し、それを受け取ったDBサーバーがSQLを実行します。
SQLiteのインストール|SQL入門(2019年11月22日)
SQLは単独では使えません、操作対象のデータベース(DB)とSQLを発行するアプリケーションが必要です。SQLを発行するアプリケーションはエクセルVBAを使いますので、あとはDBがあれば良いということになります。本シリーズではサンプルSQLの対象データベースとしてSQLiteを使います。
SQL入門:VBAでデータベースを使う|エクセルの神髄(2019年11月22日)
マクロVBA情報を中心に、エクセル関数・基本操作までサンプルとともに解説。初心者向けの基本から上級者向けの高度な内容までVBAサンプルコードを掲載解説しています。
GetObject関数|VBA関数(2019年11月19日)
ActiveXコンポーネントから提供されたオブジェクトの参照を返します。ファイルパス(フルパスと名前)からオブジェクトの参照を作成したり、既に起動中のオブジェクトを取得する際に使用します。GetObject関数の構文 GetObject([pathname],[class]) pathname 省略可能。
ActiveXコントロール|VBA入門(2019年11月16日)
リボンの開発タブにコントロールの挿入があります。ActiveXコントロールをVBAで扱う場合の解説になります。ワークシートでActiveXコントロールを扱う事の是非はありそうですが、使用することで便利かつ見栄えの良いシートになる場合もあります。
フォームコントロール|VBA入門(2019年11月15日)
リボンの開発タブにコントロールの挿入があります。フォームコントロールをVBAで扱う場合の解説になります。ワークシートでフォームコントロールを扱う事の是非はありそうですが、使用することで便利かつ見栄えの良いシートになる場合もあります。
ジャンプの選択オプション(SpecialCells)|VBA入門(2019年11月14日)
数式の入っているセル、定数の入っているセル、条件付き書式の設定されているセル、これらをシート全体やセル範囲の中から一括で取得する方法がVBAにはあります。手動でのジャンプ機能のセル選択をVBAで使うことができます。VBAでは、RangeオブジェクトのSpecialCellsメソッドがこの機能に該当します。
CSVの読み込み方法(ジャグ配列)(改)|VBAサンプル集(2019年11月11日)
CSVのマクロVBAでの読込方法についての記事は、人気記事として多くのアクセスがあります。順次改定していくつかのバージョンが存在します。最新のジャグ配列(配列の配列)で読み込むVBAについて、UTF-8Nの文字コード判別の課題が残っていました。
VBAでのCSVの扱い方まとめ|VBAサンプル集(2019年11月9日)
マクロVBAでCSVの読み書きする方法はいくつもあり、当サイトでも複数のページでそれぞれVBAコードを掲載しています。順次記事を掲載しているので、それぞれどのような特徴があるかが良く分からなくなってしまっているようです。そこで、CSVに関するページをまとめておきました。
VBAにおける変数のメモリアドレスについて|VBA技術解説(2019年11月8日)
VBA開発においてメモリアドレスを気にすることはほとんど無いと思います。気になる場合があるとしたら、・String変数の処理が遅い ・Variant変数の処理が遅い ・ByRef,ByValの違い ・WindowsAPI使用時 このような場合に多少は気になる事があるくらいではないでしょうか。
空文字列の扱い方と処理速度について(""とvbNullString)|VBA技術解説(2019年11月7日)
空文字列と書きましたが、空文字列という表現がかなり曖昧な表現になっています。ここでいう空文字列とは、文字列が入るべき場所に、何も入っていない(ように見える)状態を指しています。VBAにおいては、空文字列の状態が2つあります。
Errオブジェクトとユーザー定義エラー|VBA入門(2019年11月5日)
VBA実行時には種々のエラーが発生します。実行時エラーに関する情報は、Errオブジェクトには入っていますので、VBA実行でエラー発生した場合は、Errオブジェクトを参照しエラー内容を調べることになります。Errオブジェクトの使い方と、ユーザー定義エラーの生成方法について解説します。
シングルクォートの削除とコピー(PrefixCharacter)|VBA技術解説(2019年11月4日)
セルに入力した先頭の'シングルクォーテーションは特殊なものとなっています。通常は、数値を文字としてセルに入れるときに使っているものです。マクロVBAでセル値を取得すると、この'シングルクォーテーションはValueでは取得できません。
ユーザー定義型の制限とクラスとの使い分け|VBA技術解説(2019年11月3日)
VBAにはユーザー定義型(Type)があり、複数の要素(複数のデータ型)を含むデータ型を定義できます。複数の値をひとまとめで扱う方法として配列がありますが、配列は同じ型の値しか扱うことができませんが、ユーザー定義型の変数には、文字列型、数値型等々の複数のデータ型をひとまとめにして入れることができます。
クリップボードに2次元配列を作成してシートに貼り付ける|VBA技術解説(2019年11月1日)
タイトルはいささかとっぴな感じですが、目的はクリップボードのデータ取得とクリップボードへデータを送る方法と、そもそもクリップボードの中に、セル範囲(つまり2次元)のデータがどのように入っているかを確認してみようという事です。そして、それが解ればクリップボードに2次元配列としてデータを用意してシートに貼り付けられるだろうという事です。
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)|VBA技術解説(2019年10月31日)
VBAクラスを使う事で、ユーザー定義イベントを作成したり、動的にイベントを割り当てる事が出来ます。ユーザー独自のイベントを作成したり、フォームに動的に追加したコントロールにイベントを設定することができます。EventステートメントとRaiseEventステートメントを使う事で、ユーザー定義イベントつまりユーザー独自のイベントを作成できます。
VBAクラスのAttributeについて(既定メンバーとFor Each)|VBA技術解説(2019年10月19日)
VBAクラスをエクスポートすると各種のAttributeが設定されているのが確認できます。それぞれのAttributeの意味と、さらに追加で指定できるAttributeについて説明します。Attributeの変更はVBA標準でサポートされておらず、その使用については慎重であるべきですが、どのようなものがあるかを知るのは、
VBAの用語について:ステートメントとは|VBA技術解説(2019年10月16日)
プログラミング言語には独特の用語があります。用語の理解があやふやなままで解説を読んでも理解がずれてしまう事もあります。VBAの用語は、プログラミング言語一般で使われている用語と同じ使い方も多いのですが、中にはVBA独自の使い方をしている場合もあります。
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(2019年10月14日)
VBAでは、基本的な決まりとして1ステートメントは1行で書くことになっています。しかし、あまりに長くなってしまうと見づらくなります。逆に、短いステートメントが多数行になっていても見づらい場合もあります。
VBAコードの全プロシージャー・プロパィ一覧を取得|VBAサンプル集(2019年10月12日)
VBAの開発規模がある程度大きくなってくると、VBAソース管理の必要性を感じることもあると思います。モジュールの数も増えてきて、プロシージャー・プロパティが膨大になっきます。以下は、指定ブックの全モジュールの全プロシージャー・プロパティを一覧にするVBAサンプルです。
VBAでエラー行位置(行番号)を取得できるErl関数|VBA技術解説(2019年10月11日)
VBAのデバッグでエラーが発生した行位置を特定する方法はいくつかあります。エラーが発生したVBAソースの行ラベルを取得することができる関数がErl関数です。Erl関数は、VB6に存在しVBAにも引き継がれ実装されているものです。
手動計算時の注意点と再計算方法|VBA技術解説(2019年10月9日)
セルを変更する度に再計算が動いてしまうと処理時間が遅くなってしまいます。そこでマクロVBAの中で、計算方法を手動にすることで対処することになります。このとき処理結果が期待した結果にならないといった事が起こらないように、手動計算時の注意点と再計算方法について解説します。
引数の数を可変にできるパラメーター配列(ParamArray)|VBA入門(2019年10月7日)
Subプロシージャー、Functionプロシージャーにおいて、引数リストの数を特定せず、不定個数の引数を渡せるよう可変にしたい場合があります。ワークシートの関数では、引数の個数が不定の関数が多数あります。=SUM(数値1,数値2,...) このように、最後が「,...」となっていて、いくつでも(限度はありますが)指定できる関数です。
VBEの使い方:デバッグ|VBA入門(2019年10月6日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではVBA開発で、重要かつ避けて通れないデバッグについて説明します。。
VBAにおける配列やコレクションの起点について|VBA技術解説(2019年10月5日)
VBAの配列を扱っていると、0から開始されていたり1から開始されていたりします。さすがに、混乱したり、間違ってしまう事もあると思います。0から開始される場合を、「0オリジン」英語では「zero-based」1から開始される場合を、「1オリジン」英語では「one-based」このような呼び方をします。
VBEの使い方:オブジェクト ブラウザー|VBA入門(2019年10月5日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではオブジェクトブラウザーの使い方について説明します。オブジェクトブラウザーの表示 メニュー「表示」→「オブジェクトブラウザ」ショートカットはF2 初期設定では、
VBEの使い方:ウォッチ ウィンドウ|VBA入門(2019年10月4日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではウォッチウィンドウの使い方について説明します。ウォッチウィンドウの表示 メニュー「表示」→「ウォッチウィンドウ」初期設定では、コードウィンドウの下にドッキング表示されます。
VBEの使い方:ローカル ウィンドウ|VBA入門(2019年10月3日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではローカルウィンドウの使い方について説明します。ローカルウィンドウの表示 メニュー「表示」→「イミィディエイトウィンドウ」初期設定では、コードウィンドウの下にドッキング表示されます。
VBEの使い方:イミディエイト ウィンドウ|VBA入門(2019年10月2日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではイミディエイトウィンドウの使い方について説明します。イミディエイトウィンドウの表示 メニュー「表示」→「イミディエイトウィンドウ」ショートカット:Ctrl+G 初期設定では、
VBEの使い方:ショートカットキーとコード編集|VBA入門(2019年10月1日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではVBEのコード編集における、特に重要なショートカットキーと具体的な使い方について説明します。
VBEの使い方:右クリックメニューとヘルプ|VBA入門(2019年9月30日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではマウスの右クリックで表示されるメニューを通して、各機能について説明します。また、合わせてヘルプについても説明します。
VBEの使い方:ツールバー|VBA入門(2019年9月29日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではツールバー(アイコン付きのボタン群)について説明します。ツールバーの表示方法 メニューの「表示」→「ツールバー」ツールバーは好きな位置に配置できます。
VBEの使い方:ツールのオプション設定|VBA入門(2019年9月28日)
VBE(VisualBasicEditor)はVBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではVBEの環境設定となる、ツールのオプション設定について説明します。「メニュー」→「ツール」→「オプション」それぞれのタブについて、以下で順に説明します。
VBEの使い方:VBE画面の全体説明|VBA入門(2019年9月27日)
VBAをやるうえでVBE操作に慣れているかどうかで開発効率が大きく変わってきます。VBE(VisualBasicEditor)は、VBAの統合開発環境です。VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境がVBEです。
新規挿入可能なシート名の判定|VBA技術解説(2019年9月26日)
VBAで、シートの存在確認およびシートとして使える文字列かどうかの判定は、厳密に行おうとするとかなり大変になってきます。この件についてTwitterでやり取りがあり、それらを踏まえた上でのVBAコードを参考として公開しておきます。その時のツイートでのやり取りは、こちら シート名として使える文字列か判定 シート名の制限として、
ShapesとDrawingObjectsの相違点と使い方|VBA技術解説(2019年9月24日)
VBAで図(オートシェイプ等)を扱う時にいろいろ調べていくと、図(オブジェクト)のコレクションが二つあることに気づきます。Shapesコレクション DrawingObjectsコレクション WEBのサンプルや書籍では多くはShapesが使われているはずですが、時々DrawingObjectsを見かけることもあります。
文字列結合&でコンパイルエラーになる理由|VBA技術解説(2019年9月19日)
VBAでは、&(アンパサンド)記号で文字列結合を行う事は頻繁に行われますよね。VBEで&を記述するとき、一度くらいは赤字のコンパイルエラーになったことがあるのではないでしょうか。どのように入力した時にエラーになるのか、なぜそれがエラーになるのか、これらを少しく詳しく見てみましょう。
Byte配列と文字コード関数について|VBA技術解説(2019年8月20日)
マクロVBAのデータ型にByte型がありますが、使う機会はかなり限られています。バイト型は、8ビット(1バイト)の変数で、0~255の範囲の単精度の正の数値が格納されます。1バイトで使う事もなくはありませんが、Byte型配列として使われることがしばしばあります。
PowerQueryの強力な機能をVBAから利用する方法|VBA技術解説(2019年8月4日)
Excel2016より標準搭載されたPowerQueryはとても強力な機能ですが、使える環境が限られるので、頻繁に使われだすのはこれからになると思います。PowerQueryが広く使われだすと、色々な使い方が出てくると思います。ここでは、PowerQueryの優れた機能をVBAから利用する場合の手順を説明したものです。
練習問題31(セル結合を解除して値を埋める)|VBA練習問題(2019年7月30日)
VBA練習問題 セル結合されていると、VBAでは扱いにくい場合が多々あります。そこで、セル結合を解除して、結合されていたセル範囲に同じ値を入れたいと思います。以下の表を見てください。※上記表の全体を選択し、コピー(Ctrl+C)の後、エクセルのシートのA1セルに貼り付け(Ctrl+V)してください。
練習問題30(マトリックス→リスト形式)|VBA練習問題(2019年7月25日)
マクロVBA練習問題 売上と仕入の、支店別年度別のマトリックス表があります。これをリスト形式(データベース形式)のデータに変換してください。以下の表をみて下さい。縦横の項目の交点に数値が入っていて、ピボットテーブルのようなマトリックス表になっています。
Applicationを省略できるApplicationのメソッド・プロパティ一覧|VBA技術解説(2019年7月22日)
Applicationには多数のメソッド・プロパティがありますが、この中には、Applicationを記述しなければならないものと、Applicationを省略できるものとが存在します。これらの違いはどこから来るのでしょうか… Applicationの全てのプロパティ・メソッドについては、Applicationのプロパティ、
コレクション(Collection)の並べ替え(Sort)に対応するクラス|VBA技術解説(2019年7月20日)
オブジェクトを扱う事が多くなってくるとコレクション(Collectionオブジェクト)を使う機会も増えてくると思います。配列やディクショナリー(Dictionary)を使ったほうが良い場合も多くはありますが、単純にオブジェクトを保管し、順序通り(FIFO)に処理するだけなら、とても扱いやすい場合もあります。
CSVの読み込み方法(ジャグ配列)|VBAサンプル集(2019年7月15日)
CSVのマクロVBAでの読込方法についての記事は、人気記事として多くのアクセスがあります。当初作成して以来、ご要望をいただいたり自身で使っている中で、対応できないCSVが出てくるたびに改良を重ねています。今回のVBAは、一旦ジャグ配列を使用したCSV読み込み方法になります。
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(2019年7月14日)
エセルの機能は豊富で、全部の機能を使っている人はまずいないでしょう、どのような機能があるかだけ知っていれば、必要な時に使えばそれで良いのです。マクロVBAでも全てのエクセル機能を覚える必要などありません、必要になった時に調べてVBAが書ければそれで充分です。
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(2019年7月6日)
シートにオートフィルタが適用されていて、かつ絞り込みされている場合は、VBAは何かと面倒になります。そこで、これに対応するために作成したものが、オートフィルタを退避回復するVBAクラス ただし、これはシートが一つしか扱えません。複数シートで使う場合は、シートごとにクラスのインスタンスを作成する必要があります。
オートフィルタを退避回復するVBAクラス|VBA技術解説(2019年7月6日)
シートにオートフィルタが適用されていて、かつ絞り込みされている場合は、VBAでは、何かと注意が必要になります。このような場合、オートフィルタを解除するか、フィルタ絞り込みをクリアして対応している事が多くなります。しかし、オートフィルタを解除したり、フィルタをクリアしてしまうと、それまでの絞り込み条件が消えてしまい、
IfステートメントとIIF関数とMax関数の速度比較|VBA技術解説(2019年6月23日)
VBAの実行速度比較はとても良く読まれている人気記事となっていますが、そのほとんどは配列やDictionaryを使った少し高度なVBAでの比較が多くなっています。今回は極めて基本的な、大小比較して大きい方を返すという処理において、Ifステートメント、VBA関数のIIF関数、シート関数のMax関数 これらの処理速度を比較検証してみます。
Withステートメントの実行速度と注意点|VBA技術解説(2019年6月6日)
マクロVBAにおいてWithステートメントはとても重要です、可読性(読みやすさ、理解しやすさ)、実行速度においては、その役割はとても大きいものになります。本記事では、Withステートメントを使うか使わないかでのマクロ実行速度の差に焦点を絞って検証します。
VBA+SeleniumBasicで検索順位チェッカー(改)|VBA技術解説(2019年6月2日)
VBAでSeleniumBasicを使って検索順位チェッカーを作り、Google検索順位の履歴を管理します、既に作成解説した、VBA+SeleniumBasicで検索順位チェッカー作成こちらの改訂版になります。Google検索をスクレイピングすることは、Google利用規約に反する可能性があります。
マクロでShift_JIS文字コードか判定する|VBA技術解説(2019年6月1日)
環境依存文字・機種依存文字をチェックしたいという話は時々聞くことなのですが、何をもってして判別するかという事が実はとても難しい問題になります、①②もIMEでは[環境依存]と表示されますが、通常これが問題になる事はないでしょう。そもそもコンピューターの中は2進数だけで表現されているもので、コンピューターの文字とは、
Shift_JISのテキストファイルをUTF-8に一括変換|VBAサンプル集(2019年5月31日)
本サイトの文字コードは開設当初からShift_JISでしたが、昨今の事情を考えてUTF-8に変更することにしました。そこで既存記事全てを一括で変換することになり、これをVBAでやりましたので、その時のVBAコードを掲載しておきます。以下のVBAコードはサイトのUTF-8変更にあたり急遽作成したものですが、
「VBAによる解析シリーズその2 カッコ」をやってみた|エクセル雑感(2019年5月21日)
ツイッターで出たVBAのお題をやってみました。もとネタはこちら、VBAによる解析シリーズその2カッコ 関連ツイート なかなか楽しかったので、VBAコードを掲載しておきます。まず最初にお題から受ける印象は、再帰処理を行うという事になると思います。
VBA+SeleniumBasicで検索順位チェッカー作成|VBA技術解説(2019年5月18日)
VBAでSeleniumBasicを使って検索順位チェッカーを作ってみます。SEO対策として各キーワードでの検索順位チェックは欠かせませんが、簡単に使えてキーワードを大量に指定できる良いツールがなかなかありません。Google検索をスクレイピングすることは、Google利用規約に反する可能性があります。
テーブル操作のVBAコード(ListObject)|VBA入門(2019年5月12日)
テーブル操作の具体的なVBAコードをパターン別に掲載します、テーブルの全体的な構成は ・テーブル全体 ・見出し行 ・データ範囲 ・集計列 ・集計行 VBAでは、これらのオブジェクトを使い各要素にアクセスします。テーブル全体のオブジェクトがListObjectで、シート内に複数テーブルが作成可能なので、
テーブル操作の概要(ListObject)|VBA入門(2019年5月12日)
テーブルのVBAでの操作で使用するオブジェクトの概要の説明です、テーブルは、セルの範囲を表(テーブル)に変換することで、関連するデータの管理と分析を容易にできるエクセルの機能で、以前はリストと呼ばれていました。テーブルを作成して書式設定することで、データを視覚的にグループ化して分析しやすくできます。
VBAのスクレイピングを簡単楽にしてくれるSelenium|VBA技術解説(2019年5月6日)
VBAでWebスクレイピングする方法としてIE自動操作がありますが、VBA記述が結構面倒になります、もっと簡単にスマートにVBAを書きたいと思ったら…SeleniumBasicを使ってみましょう。SeleniumBasicは、エクセルVBAでのWeb閲覧を自動化することを強力かつ簡単に実現してくれます。
Excelワークシート関数一覧(2010以降)|VBAリファレンス(2019年4月22日)
Excelワークシート関数の一覧と解説です。Excel2010以降に追加された関数一覧になります。2007までのワークシート関数一覧ワークシート関数の一覧 引数、関数構文については Excelシートの複雑な計算式を解析するVBAの関数構文 Excel2010で追加されたワークシート関数 Excel2013で追加されたワークシート関数 関数名 種類と説明 …
クラスとCallByNameとポリモーフィズム(多態性)|VBA技術解説(2019年4月6日)
VBAの使い方が進んでいくとクラスを使うようになっていきます。クラスを使うようになるとオブジェクト指向という言葉に出会い、オブジェクト指向を学んでいくとポリモーフィズム(多態性)という言葉に出会います。オブジェクト指向における多態性の説明としては、メソッドの呼び出し時に、メソッドが属するオブジェクト(クラス)の種類によって呼び出し先の実装コードが選択され、
VBAでのタイマー処理(SetTimer,OnTime)|VBA技術解説(2019年4月3日)
VBAでタイマー処理(一定時間間隔で処理)を行う方法についての解説です。最も一般的な方法は、Application.OnTimeを使う方法になりますが、今回の主題としては、WindowsAPIのSetTimerを紹介します。まずはApplication.OnTimeの確認してから、次にWindowsAPIのSetTimerを紹介します。
クラスとイベントとマルチプロセス並列処理|VBA技術解説(2019年4月2日)
エクセルVBAではマルチスレッドによる並列処理はサポートされていません、つまり通常は順序良く直列に処理していくしかありません。しかし処理時間が多大にかかるような処理も現実には存在しているため、エクセルVBAで並列処理したいという要望も出てきます。
エクセルの日付と時刻のまとめ|エクセル関数超技(2019年3月6日)
エクセルに入力するデータとしては、数値、文字、日付時刻などがありますが、日付時刻はかなり特殊なものとなっています。日付時刻の扱いは独特であり、エクセルのワークシートだけでなくVBAでも他のプログラミング言語でも扱いが面倒なものです、ここでは日付時刻についての関数や応用方法についてまとめています。
Excelシートの複雑な計算式を解析するVBA|VBAサンプル集(2019年2月18日)
セルに入力されている数式が折り返されていて複数行(ときに3行以上)になっている場合、数式バーで見ていたのでは、どんな数式なのかがさっぱりわからなくなります。このような複雑な数式を分解し、分かり易く表示するVBAを作成しました。最初に言っておきますが、そもそも、そのような複雑な数式は作らないほうが良いというのが基本です。
VBAクラスの作り方:独自Rangeっぽいものを作ってみた|VBA技術解説(2019年2月16日)
クラスの作成は、標準モジュールで作成していた時とは様相が違い戸惑う部分も多いと思います、それは、初めてVBAに取り組んだ時の戸惑いと同じかもしれません。最初はとにかく慣れることが一番です、細かい文法や機能は、少し慣れてから改めて学んでも遅くはありません。
VBAクラスの作り方:列名のプロパティを自動作成する|VBA技術解説(2019年2月14日)
クラスに列名のプロパティを作成することで、入力支援が使えてコーディングが楽になりますが、列数が多くなればVBAの記述量が増え、コーディングが大変になります。入力支援が使えるのは良いが、その事前準備があまりに大変ではやる気が失せてクラス作るのが面倒になってしまいます。
VBAクラスの作り方:列名の入力支援と列移動対応|VBA技術解説(2019年2月11日)
クラスを使う良さとして、入力支援が使えてコーディングが楽になるという利点があります、列番号をクラスに持てば、列名が候補表示されて非常に便利です。しかし、これを実装するには、かなりの手間がかかります。つまり、クラス作成に手間をかけて、その後を楽にするということになります。
クラスを使った全ブック(他ブック)のイベント補足|VBA技術解説(2019年2月6日)
VBAでイベントを使う場合は、通常はイベントが発生するオブジェクト(ブックやシート等)のモジュールに記載します、つまり、各ブックの中にマクロを入れなければなりません。開いている全ブックまたは、他の特定のブックのイベントを処理するには、WithEventsキーワードを付けた変数宣言を使います、クラスを使って全ブックまたは他ブックのイベントを補足する方法につ…
Excelアドインの作成と登録について|VBA技術解説(2019年2月3日)
Excelアドインの作成方法と登録方法についての手順と注意点、そして対応するマクロVBAコードについて紹介します。具体的にどんなアドインを作成するかではなく、一般的なアドインの作成と登録についての概要の解説とVBAコードのサンプルになります。



アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ