Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。今回は、Access VBAからGoogleマップへデータを引き渡す応用テクニックを紹介する。
このサイトには,以前Excel+VBAをベースとするシステムを構築した経験から学んだり編み出したノウハウをまとめています。 スマートフォンやクラウド全盛とはいえ,オフィスのデスクで使われている多くのコンピュータにはMS-Excelがインストールされており,日常業務で使われることも多いでしょう。そのため,ExcelをベースにVBAで機能を拡張したアプリケーションは,うまく作れば開発工数を抑えられるだけでなく,ユーザーにとっても使い勝手の良いものとなります。 しかし,実際にExcel+VBAでシステムを開発したり運用してみて初めて見えてくるやっかいな問題もあります。このサイトでは,VBA特有の設計上の問題に対して経験に基づいた汎用的な解決策を紹介することを目的としています。そのため,ワークシートの印刷範囲をVBAから設定するにはどうすればよいかなどといったネットや本を探せば簡単に見つかりそうな
クレジットカード現金化の高還元率の優良店を選ぶためには クレジットカード現金化の優良店を選ぶポイントは、換金率やスピードもありますが、そのほかにも見ておきたいポイントもあります。 お金に厳しい人が利用しますので、手数料やキャンペーンの有無、価格交渉ができる業者ということは見ておきたいところです。 それぞれどのような内容なのでしょうか。 手数料が無料であるクレジットカード現金化の業者には、手数料をすべて無料でしてくれるところがあります。 業者によっては、単純に手数料という名目で業者側の利益がとられていたり、振込手数料、事務手数料という名目で少額ながらお金がかかることがあります。 せっかく高い換金率が記載されていても、手数料の分が差し引かれることで、損をしたような気持ちになったり後から気づくこともあります。 これらの手数料は最初から公式ホームページに記載がある場合は了承したうえで申し込みもでき
前回の記事 プログラムの初歩の勉強は、Excelでやっちゃうってのはどうでしょう。Winユーザー向けプログラム勉強方法 – Mokosoft開発者ブログ に引き続きまして、Excelプログラミング勉強法の紹介です。 どんどんアプリからは遠のいてる感じもしますが、気にしません。 本記事では前回の記事で紹介できなかった機能を紹介したいと思います。 実は簡単なアプリケーションも作れる 簡単なというと語弊がありますが、Windows上で動くソフトウェアとかどうやって作ってるんだろー、と思うこともあると思います。 そういったものもExcelで作ることもできるんです。 ※配布する場合は、配布先でもExcelがインストールされてる必要があります。 まず、おそらくOffice2010以降ですが、開発用のメニューはデフォルトでは隠されているので、表示させる必要があります。 リボンを右クリックして、「リボンの
クレジットカード現金化の高還元率の優良店を選ぶためには クレジットカード現金化の優良店を選ぶポイントは、換金率やスピードもありますが、そのほかにも見ておきたいポイントもあります。 お金に厳しい人が利用しますので、手数料やキャンペーンの有無、価格交渉ができる業者ということは見ておきたいところです。 それぞれどのような内容なのでしょうか。 手数料が無料であるクレジットカード現金化の業者には、手数料をすべて無料でしてくれるところがあります。 業者によっては、単純に手数料という名目で業者側の利益がとられていたり、振込手数料、事務手数料という名目で少額ながらお金がかかることがあります。 せっかく高い換金率が記載されていても、手数料の分が差し引かれることで、損をしたような気持ちになったり後から気づくこともあります。 これらの手数料は最初から公式ホームページに記載がある場合は了承したうえで申し込みもでき
これらのデータ型やプレフィックスに精通する必要はありますが、以前に説明した Win32API.txt ファイルに含まれる Declare ステートメントは VBA でそのまま使用できます。コード内でこれらの Declare ステートメントを使用すると、関数の引数は既に正しい VBA データ型で定義されています。 大部分の場合は、正しいデータ型を定義し、渡している限り、DLL 関数の呼び出しは VBA 関数の呼び出しと同じ方法で機能します。例外については、次のセクションで説明します。 DLL 関数から文字列を返す DLL 関数が文字列を返す方法は、VBA 関数とは異なります。文字列は、DLL 関数へは常に参照渡しで渡されるので、DLL 関数は文字列引数の値を変更できます。VBA で行うように、関数の戻り値として文字列を返すのではなく、DLL 関数は関数に渡された String 型の "引数"
フォルダを選択するダイアログボックスを表示するにはいくつかの方法があります。 1.FileDialogオブジェクトを使う方法 Sub Sample1() With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then MsgBox .SelectedItems(1) End If End With End Sub 2.Shellを使う方法 Sub Sample2() Dim Shell, myPath Set Shell = CreateObject("Shell.Application") Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\") If Not myPath Is Nothing Then Ms
◆Fileを選択するオープンダイアログ / Bookを開く / CSVファイルを開く VBA でアプリケーションを作成する場合、Excel のファイルを選択したり、 CSV ファイルを選択したりすることで汎用性を持たせることができます。 そのときに重要なユーザーインターフェースになるのがオープンダイアログです。 オープンダイアログを表示するには GetOpenFilename を使用します。 実際にファイルを開くわけではなく、ファイル名とパスを取得します。 GetOpenFilename(FileFilter, 省略, Title, 省略, 省略) FileFilter: 選択するファイルを指定する文字列を記述します。 ファイルフィルタ文字列とワイルドカードのペアを カンマで区切って記述します。 Title: オープンダイヤログのタイトルを記述します。 Sub OpenDialog() D
メリットはテキスト形式の出力と同じです。 ここでも、古くからのBASICの記述方法と、FSO(FileSystemObject)を操作する方法で、テキストファイルに書き出す方法を解説します。 ワークブックの保存でもCSV形式テキスト(カンマ区切り、*.csv)がありますが、文字列項目をダブルクォーテーションで囲ったり、シートの一部(例えば見出しを除くなど)を出力することはできません。 ここでの方法はいわばExcelの標準と言える出力形式で、FSO(FileSystemObject)の方は個別にレコードを編集するので形式の選択も自在です。 CSV形式テキストファイルは、その形式の「単純さ」からかシステム間のデータ受け渡しに利用されることがよくあります。ですが、一般の利用者は「CSV形式」=「仕様が単一で確立している形式」という誤解があると思います。 現実にこの問題に直面している人もこのページ
デザイン済みのシートにデータを直接読み込むことができます。 ここでは、古くからのBASICのステートメントの記述方法と、FSO(FileSystemObject)を操作する方法で、テキストファイルを読み書きする方法を解説します。 例えば、CSV形式のファイルを直接開くと、見出しもないデータの羅列がワークシートに展開されてしまいますが、ここでのサンプルの方法であればデザインしたワークシートの見出しの下の行からデータを読み込んで表示させたり、ワークシートに表示させないで内部処理を行なうなどのことができます。 なお、これから新しく取り組む方は古いステートメントではなく、最初からFSO(FileSystemObject)を学んで下さい。 まずは、「古くからあるステートメント」の方法です。 通常の文書のようなテキストデータを改行(CRLF)単位に1行ずつ読み込みます。 動作確認をされる場合は、Asc
「キー」と「値」がセットになっていて、「神奈川県」というキーで「横浜市」という値を検索できるような仕組みです。Dictionaryオブジェクトでは、こうした連想配列にデータ(キーと値のセット)を追加したり、検索したり、任意のキーがすでに存在しているかどうかを調べことなどができます。なお、連想配列では同じキーを登録できません。 Dictionaryオブジェクトを使って重複しないリストを作成するには、次のように考えます。 セルA2からセルA8まで順にデータを取得します 取得したデータが連想配列に登録されていなかったら登録します 取得したデータが連想配列に登録されていたら何もしません 流れはこんな感じです。さて登録するデータですが、連想配列では「キー」と「値」の二つが必要です。今回のケースでは「名前」データしかありません。「名前」を「キー」にするとして、「値」には何を登録したらいいのでしょう。
■ エクセルVBA超入門 ・9ステップで"Hello World!" からオブジェクト指向まで! 1. "Hello World!"を表示しよう 2. 基本はデータの入出力 3. 繰り返し処理 4. シートで簡易データベース 5. 名前をつけよう 6. 構造化プログラムに挑戦 7. 構造体を使ってみよう 8. フォームを使ってみよう 9. オブジェクト指向に挑戦 ■ エクセルVBA中級編 ・VBAでいろんなテクニック 変数・関数のスコープ 引数の参照方法を明示 配列の中身を一気に複写 識別子がよいコードを作る データ定義型をもっと知ろう 定数と列挙型を活用しよう エラー処理の重要性1 エラー処理の重要性2 いろいろな条件分岐 いろいろな繰り返し処理 演算子について知ろう 文字列操作 連結 変換 置換 文字列操作 検索 比較 書式 日付操作関数を知ろう 数値操作・評価・その他関数 並び替えソ
■ エクセルVBA超入門 ・9ステップで"Hello World!" からオブジェクト指向まで! 1. "Hello World!"を表示しよう 2. 基本はデータの入出力 3. 繰り返し処理 4. シートで簡易データベース 5. 名前をつけよう 6. 構造化プログラムに挑戦 7. 構造体を使ってみよう 8. フォームを使ってみよう 9. オブジェクト指向に挑戦 ■ エクセルVBA中級編 ・VBAでいろんなテクニック 変数・関数のスコープ 引数の参照方法を明示 配列の中身を一気に複写 識別子がよいコードを作る データ定義型をもっと知ろう 定数と列挙型を活用しよう エラー処理の重要性1 エラー処理の重要性2 いろいろな条件分岐 いろいろな繰り返し処理 演算子について知ろう 文字列操作 連結 変換 置換 文字列操作 検索 比較 書式 日付操作関数を知ろう 数値操作・評価・その他関数 並び替えソ
VBAでは、標準モジュール、クラスモジュール、ユーザーフォームの3種類のモジュールを作成することができます。 (ユーザーフォームもクラスモジュールの仲間です) このページでは、VBAユーザーには比較的馴染みの薄い、クラスモジュールを取り扱います。 VBAは、クラスモジュールを使うことによってオブジェクト指向プログラミングをすることができます (オブジェクト指向とはなにか?については、難しくなるのでここでは詳しく触れません)。 とはいえ、オブジェクト指向の要であるクラスモジュールは継承やオーバーロードなど、オブジェクト指向に欠かせない機能がサポートされていません。 完全にオブジェクト指向でやろうとすると、逆にソースコードが見にくくなったり、沢山のクラスモジュールであふれかえることになります。(冗長になりがち) よって、VBAのクラスモジュールは何ができて何ができないかを見極めることが、
ここまでは「転記」の実際を説明しましたが、Rangeオブジェクトを理解すると展開が変わるので必見です。 重要なことですが初心者にはハードルが若干高いことも事実です。 たとえば「計算式」で「相対参照・絶対参照」や「A1参照形式・R1C1参照形式」を一生懸命説明したつもりですが、結局自社内でもこの説明での理解度はいまひとつで、自分でも不満な状態です。 ここで「RangeオブジェクトとRangeを返すプロパティ」の説明をするのもうまく伝わるか判りませんが、大事なことなので、是非、よくお読み下さい。
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説する本連載「Excelマクロ/VBAで始める業務自動化プログラミング入門」。前回の「初心者でも図解で分かる! VBEの基本的な使い方とVBAプログラムの基礎文法」では、オブジェクト、プロパティ、メソッド、関数など、プログラミングに必要な専門用語や開発ツール「VBE(Visual Basic Editor)」の使い方を解説した。 今回はVBEでマクロを実行する際に、マクロを1行ずつ実行させる「ステップイン」、任意の位置まで実行する「ブレークポイント」、さらに「エラー」への対処方法や「変数」「データ型」など、プログラミングをする上で重要な項目について解説する。 「マクロを1行ずつ実行させて、一体何の意味があるんだろう」と思う読者もいるかもしれない。マクロを1行ずつ実行させると、どこのコードでどの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く