タグ

vbaに関するdelegateのブックマーク (88)

  • Access VBA:InputBoxのようなフォームを作成する|戻り値はキャンセルとOK

    Access VBA:InputBoxのようなフォームを作成する|戻り値はキャンセルとOK 簡単に入力できるInputBoxフォームをVBAで使う方法を掲載しています。 Home フォーム 日付やパスワードを入力する、専用のInputBoxを作りたい場合があります。そこでここではフォームで改造の基となるようなInputBoxを作成します。 使用するコントロールはラベル・テキストボックス・OKとキャンセルのコマンドボタンになります。 フォームを開く時に、複数の引数を設定できるようにし、タイトルやテキストボックスの初期値を指定できるようにします。 フォームはダイアログ形式にし、フォームを閉じなければフォーカスが戻らないようにします。 フォームのサイズは、Form_Loadイベント内でコマンドボタンの位置とサイズから計算し設定します。 次に掲載している「フォーム入力時に自動的に半角と全角(日

  • DoEventsをうまく使う | Sunvisor Lab.

    AccessのVBAで時間のかかる処理をすると,画面が更新されなかったり,Windowsから(応答なし)扱いされたりします。それをさけるためには,DoEventsを呼び出すのですが,なにも考えずに呼び出すとパフォーマンスが大幅に低下します。これをなんとかしようという試みです。 まずは「DoEventsをパフォーマンスを下げずに使う方法」というページに紹介されていた手法を使ってみます。 Private Declare Function GetInputState Lib "USER32" () As Long Public Sub CheckEvents() If GetInputState() Then DoEvents End If End Sub これは,GetInputState APIをコールして,待機中のイベントがあればDoEventsをコールするというものです。このCheckE

  • Access VBAでSQLを実行するQueryDefオブジェクト、CreateQueryDefメソッド、QueryDefsコレクションの使い方の基本

    今回は、Accessのフォームからデータを入力し、入力したデータを基にSQLで検索を行い、抽出した結果をExcelのシートに書き出す処理を解説する。 使用するテーブルは、TIPS「AccessからExcelに接続して開く方法&Accessで作成したデータをExcelに出力する方法で学ぶ、連携VBAの基」で作成しておいた、「商品管理テーブル」だ。「商品管理データベース.accdb」をクリックして、Accessを起動しておいてほしい。 Accessのフォームとコントロールの配置 Accessメニューの「作成」→「フォームデザイン」と選択して、「フォームデザイン」の画面を表示する。 「フォーム1」タブの上でマウスの右クリックをして、表示されるメニューから「上書き保存」を選択し、「フォーム名」を「SQLで抽出したデータをExcelに書き出すフォーム」という名前にしておく。すると、フォームの「デザ

    Access VBAでSQLを実行するQueryDefオブジェクト、CreateQueryDefメソッド、QueryDefsコレクションの使い方の基本
  • 【極める!AccessのVBA】QueryDefを使ってパラーメータ付きクエリをレコードセットにする方法|DeepBlue Writing

    【極める!AccessのVBA】QueryDefを使ってパラーメータ付きクエリをレコードセットにする方法 AccessのVBAでは、レコードセットを使うことが非常に多いですよね。 特にExcel出力したい場合などは、レコードセットを使えるかどうかで自由度が変わってきます。 レコードセットはテーブルだけでなく、SELECT句で作ったクエリ(選択クエリ)を扱うことも可能なんですが、パラメータがある際には注意が必要。 今回は、パラメータ付きクエリをレコードセットとして扱う方法に特化して紹介していきましょう。 その前にパラメータについて説明その前にの前に(笑) パラメータと書いていますが「パラメーター」と記載されていることも多いです。 システム系の単語になると、筆者自信が語尾を伸ばすのが気持ち悪く、止めているだけなのであしからず(笑) だからサーバーも「サーバ」です。 パラメータはクエリの条件や関

    【極める!AccessのVBA】QueryDefを使ってパラーメータ付きクエリをレコードセットにする方法|DeepBlue Writing
  • ACCESS VBA Excelエクスポート機能(VBAコード公開) - たすけてACCESS

    ACCESSのテーブルやクエリのデータを、Excelにエクスポートして利用するシーンは多いと思います。 そんな時にACCESSの操作が分かる方であれば直接テーブルやクエリをエクスポートすればよいのですが、ACCESSに詳しくない方も使う業務データベースなら、コマンドボタン一つでエクスポートできるようにして効率を高めたいですよね。 今回は、VBAを使ってACCESSのテーブルやクエリをExcelに出力する機能をご紹介します。 こんにちは。 はこにわガジェット (@hakoniwagadget) です。 ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。 ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。 この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。

  • VBAでクラスをつくる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    VBAでクラスをつくる - Qiita
  • Access VBA: 64bit でも 32bit でもDAOを動かす方法(検証中)。

    Access2010 以降、DAOの標準ライブラリが "Microsoft Office 14.0 Access database engine Object Library" となりました。 これにより、Access2010 で作成したDAOを利用したAccessVBAアプリケーションが、2010より古いバージョンで動かなくなることがあります。 "Microsoft Office 14.0 Access database engine Object Library" の代わりに "Microsoft DAO 3.6 Object Library" を参照設定で指定すれば旧バージョンでの動作は可能ですが、今度はAccess2010 64bit 版で動かなくなります。 ※"Microsoft DAO 3.6 Object Library" が64bitで動かないため。 いろいろ悩んで、ひとま

    Access VBA: 64bit でも 32bit でもDAOを動かす方法(検証中)。
  • 【Excel】DAOでAccess・Excel・CSVへ接続・操作

  • VBAでparseしたJSONデータの要素を取得する方法

    Web APIを使っていると、リクエストに対するレスポンスデータがJSONデータってことが一般的だ。JSONデータはキーと値のペア、すなわち連想配列になっているわけだが、これをparseすることで、キーを指定すれば値を取り出すことが可能となる。別にparseしなくても欲しい値を取り出することできるが、難儀して自分で取り出す処理を作ることになる。有難いことに、どなたかがparse用のライブラリを作成してGitHubに公開しているので、使わせてもらう。 VBA-JSON(JSONデータparse用ライブラリ)の導入まずはVBAでJSONデータをparseするためのライブラリをGitHubから落とす。以下サイトに移動する。 https://github.com/VBA-tools/VBA-JSON 図1の赤枠の「Code」→「Download ZIP」とクリックする。 ダウンロードされたファイル

    VBAでparseしたJSONデータの要素を取得する方法
  • エクセルVBA

    こんにちは、ヒガシです。 このページでは、以下の画像のように1行のデータを飛び飛びで2行に整理するVBAコードをご紹介していきます。 それではさっそくやっていきましょう! VBAの実行環境を構築しておく 上記の作業をVBAを使って実行してい...

    エクセルVBA
  • VBAでWeb API(REST API)を使うときの作法 - 経理屋とVBAの日記

    巷でVBAが古い、使えない、ゴミ、カメムシと言われる理由をここで改めて書くことはしませんが、少なくともVBAで凝ったことをしようとすれば最終的には他の言語の知識が必須になります。 というかそもそも名前からしてfor Applicationsなので…というところもあり、 VBAから金の匂いがする 宗教上の理由でGoogle Appsが使えない 足りない機能を補うためWScriptからPowerShellを立ち上げて.NET Frameworkの関数を呼ぶような実装に何らかの興奮を覚える といった特殊な環境に置かれた諸兄以外はあまりVBAを突き詰める必要はないと思います。 今回お話しするWebAPIもそんなVBAの苦手分野の1つで、諸々の理由と相まってネット上にはヤバいコードがごろごろ転がっています。 流石にあれを業務で使うのもアレなので、稿ではVBAでもそこそこまともにWebAPIを叩く方

    VBAでWeb API(REST API)を使うときの作法 - 経理屋とVBAの日記
  • モダンなExcelVBA開発環境の構築 | Tech Blog

    はじめまして。 6月に中途入社しました開発一部の河野です。 突然ですが、みなさんVBAは使っていますか? ExcelVBAにおいても、手軽に業務を効率化できるので多くの方が使用されているかと思います。 私はプログラミングを好きになるきっかけになったのがこのExcelVBAで、業務でもたくさん活用しています。 弊社の新人研修でもデータベースの基礎学習フェーズとしてAccessVBAを用いて簡易なシステム開発をしてもらいました。 そんな便利なVBAですが、個人的に少し思うことがあります。 それは、標準で用意されているエディタが少々使いづらいということです。 VBE(Visual Souce Editor)というVBA開発のための簡易的なIDEのようなもので、 入力補完やデバッグ実行といった必要最低限の機能は存在するのですが、 タブ切り替えがなく1ファイルごとしか開くことができなかったり、行数が

  • イマドキのモダンVBA~VBAをGitソース管理しVBAからWebAPIを利用する~ - Qiita

    この記事は マイナビ Advent Calendar 2020 の15日目の記事です。 はい!気づけば早いものでもう12月!またまたこの季節がやってまいりました。 今年は昔懐かしいExcelVBAと戯れることになったので、「VBAのシステムをいかにモダンな感じ1にしてみたか」といった感じのことを記して今年を締めくくろうかと思います。 ちなみに今年のクリスマスは子供のリクエストでターキー丸鶏に挑戦することになり先日取り寄せをしてみました。 (ここで唐突にクリスマス感を ) 要約 この記事の内容は、だいたい以下を見ればおしまいです。忙しい方はここだけ見ればOKです。 ExcelVBAでGitによるソース管理をするには vbacを使えばOK ExcelからVBAソースだけ取り出せる。(ソースのエクスポート的な) Excel内のVBAソースを一式差し替えられる(ソースのインポート的な) Excel

    イマドキのモダンVBA~VBAをGitソース管理しVBAからWebAPIを利用する~ - Qiita
  • Excel VBAのWinHTTPライブラリ:インターネット通信を自動化する強力なツール

    Excel VBAのWinHTTPライブラリは、インターネット通信を行うための強力なツールです。このライブラリを使用することで、HTTPリクエストを送信し、WebサービスAPIからデータを取得したり、Webサーバーにデータを送信したりすることが可能です。以下に、WinHTTPライブラリの主要な機能とそれらを活用した実用例を説明します。 主な機能 WinHttpRequestオブジェクト HTTPリクエストを作成し、Webサーバーと通信するためのオブジェクトです。GET、POST、PUT、DELETEなどのHTTPメソッドを使用してリクエストを送信できます。 例題1: HTTP GETリクエストを送信してデータを取得 WinHTTPライブラリの参照設定 VBAエディタを開く:Excelで Alt + F11 を押してVBAエディタを開きます。 参照設定を開く:VBAエディタで ツール メニ

  • VBAの罠-Dictionary.Keys(i) .Items(i)と書いてはいけない - 和風スパゲティのレシピ

    知らずに落ちると抜け出せなくなるVBAの落とし穴です。 Dictionaryを使ったのに処理が遅い 遅延(実行時)バインディングにしたら動かなくなった 「Property Let プロシージャが定義されておらず、Property Get プロシージャからオブジェクトが返されませんでした。」という謎のエラーに遭遇した あたりにお悩みの方は、この落とし穴に落ちていないかご確認ください。 Dictionary.Keys/Itemsは引数を持たない 解決策 遅延(実行時)バインディングでのエラー おまけ:引数を持たないプロパティの返り値に渡すi Dictionary.Keys/Itemsは引数を持たない DictionaryのKeys/Itemsメソッドは、 すべてのKey/Itemを1次元配列にして返すメソッドです。 「引数はなくて、返り値が1次元Arrayのメソッド」 というのが正しい解釈です

    VBAの罠-Dictionary.Keys(i) .Items(i)と書いてはいけない - 和風スパゲティのレシピ
  • WindowsAPI をOffice64bit版または32bit版のVBAで使うには | hatena chips

    いままでOfficeの32bit版のVBAWindowsAPIを使用していたコードが、Officeを64bit版に変更するとコンパイルエラーになり使えないということが発生します。64bit版に対応させるためには、WindowsAPIのDeclareステートメントの宣言を書き換える必要があります。WEB検索するとMS公式のものも含めていろいろ情報が見つかりますが、分かりにくかったり、不正確な情報も多々あります。そこでhatenaなりに分かり安く整理してみました。 Office64bit版、Office32bit版どちらでも使用できるDeclare宣言詳しい解説は後回しにして、結論を先に書きます。 Office2010以降(VBA7)の場合Declare宣言実例で説明したほうか分かり安いと思いますので、SetWindowPos というAPIを例に説明します。 旧来の宣言は下記になります。 P

    WindowsAPI をOffice64bit版または32bit版のVBAで使うには | hatena chips
  • AccessVBA_クラスモジュール - たま氏の覚え書き

    クラスモジュールとは何か、どんな場合にどのように利用するのか クラスモジュールとその利用場面 クラスモジュールでオブジェクトを設計 インスタンスを生成(オブジェクトを実体化) 設計したオブジェクトを使用 【重要】プロパティプロシージャの使用 クラスモジュールとその利用場面 クラスモジュールとは、独自のオブジェクトを設計するモジュール 例えば以下の理由により、自分自身で独自のオブジェクトを作成したい場合に使用する ・同じ機能を複数個所で使いまわしたい ・複数人で開発に取り組む場合に、それぞれが同じ機能を重複して作成する状況を避けたい 【独自のオブジェクトの作成~利用までの流れ】 1:クラスモジュールでオブジェクトを設計 2:インスタンスを生成(オブジェクトを実体化)することでオブジェクトを利用可能な状態にする 3:設計したオブジェクトを使用する(当記事では標準モジュールで使用) ▼混乱防止の

    AccessVBA_クラスモジュール - たま氏の覚え書き
  • VBA ADOによるデータベース操作について詳細解説! [VBA関連解説#07] - 小さな在庫管理

    エクセルVBAのADO機能を利用した、アクセスDBとの連携について解説していきます。 この記事では、データベースの抽出/登録/更新/削除の各操作について解説します。 まだ、データベースの接続/切断について未読の方は、次の記事で解説しています。 VBA初期設定 レコード抽出 抽出 VBA実行 レコード登録 登録 VBA実行 レコード更新 更新 VBA実行 レコード削除 論理削除 VBA実行 物理削除 VBA実行 VBA初期設定 レコード抽出 抽出 データベースからのレコード抽出のサブプロシージャを標準モジュール:TESTに作成します。 レコードセットのデータを、配列変数に格納し、処理を実行する流れを解説します。 Sub レコード抽出() '''''''''' レコード抽出 '''''''''' 'レコードセットオブジェクトの作成 Dim adoRs As Object Set adoRs =

    VBA ADOによるデータベース操作について詳細解説! [VBA関連解説#07] - 小さな在庫管理
  • http://bbs.wankuma.com/index.cgi?mode=al2&namber=102625

  • Access業務アプリで最初に仕込む汎用的なVBAコード - Qiita

    自分がMicrosoft Accessで業務アプリケーションを製作するときに、ほぼ共通して必ず仕込んでいるコードを紹介する。 汎用性はそこそこ高いと思うので参考にしてくれたら幸いだ。 条件付きで終了時にデータベース最適化 番リリース版(拡張子がaccde)に限り、アプリケーション終了時に自分自身のファイルサイズが既定値を超えていたらデータベースの最適化を行う。 定数LIMITはConst定義されているものとする。データベース体がSQL Server等ではなくローカルにある場合限定だ。 Private Sub Form_Unload(Cancel As Integer) Dim nSize As Long If Right(CurrentDb.Name, 5) <> "accde" Then Exit Sub nSize = FileLen(CurrentDb.Name) / 1024

    Access業務アプリで最初に仕込む汎用的なVBAコード - Qiita