タグ

VBAに関するhiroomiのブックマーク (40)

  • WindowsのタスクスケジューラとPowerShellを使ったエクセルVBAの定期自動実行 - Qiita

    仕事で「エクセルの案件表を別のエクセルにクエリで表示し、それをフィルター関数でシート毎に担当者別の表にし、VBAで条件付き書式を設定して罫線などで修飾し、定期的に遠隔地のプリンタから出力する」という課題をこなしたので、方法を記録しておきます。 仕事のデータは使えないので替わりに下記のデータを利用します。 なかなかちょうど良い感じのが無くて困りました… 厚生労働省|女性の活躍推進企業データベースオープンデータ 作業の都合上、遠隔地のプリンタでは無く自PC内にPDFデータを出力することにします。 実現すること 1. 既存の参照元からエクセルにパワークエリでデータを読みこみ、自動更新 2. フィルター関数で特定項目ごとにデータを分けて表示する 3. データの行数に応じてVBAで条件付き書式を適用し、可変の罫線や背景色を付ける 4. 一定の日時に自動でシート毎のPDFファイルを作成する エクセルフ

    WindowsのタスクスケジューラとPowerShellを使ったエクセルVBAの定期自動実行 - Qiita
  • VB & VBAプログラミング

    Visual BasicはAPI、DLL、OCX等と組み合わせて使うことによって、実に多くのことができる。Visual Basicを使えるようになると、Excel等のマクロであるVBAも使えるようになるという副産物もある。(もちろんこの逆もありだ。)Visual Basicで作れないものはないと私は思う。たしかに、速度を要求されるようなプログラムは無理があるが、そこは適宜DLLやATLを併用する。それに最近ではDirect3Dだって使える! 文中の記述例およびサンプルは、すべてVB6またはVBA5(Excel97)で書いてある。 記述例およびサンプルに含まれるファイルの全部、または一部を使用したことによる損害等について、一切の責任を負いません。 [VB]テキストボックスを自動的にスクロール [VB]コマンドラインの取得 [VB]コンソールアプリケーションの起動と完了待ち [VB]Exce

    hiroomi
    hiroomi 2023/03/12
    “<CreateProcessを使う方法>”
  • シェル プロセスの終了日時を調べる

    Visual Basic for Applications (VBA) プロシージャで Shell 関数を実行すると、実行可能プログラムが非同期的に開始され、プロシージャに制御が返されます。 このシェル プログラムは、終了されるまでユーザーのプロシージャとは関係なく実行を続けます。 プロシージャがシェル プロセスの終了を待機する必要がある場合、Windows API を使用してアプリケーションの状態をポーリングできますが、この方法はあまり効率的ではありません。 このトピックでは、より効率的な方法について説明します。 Windows API には、シェル プロセスが完了するまでアプリケーションが待機できるようにする機能が統合されています。 これらの機能を使用するには、シェル プロセスへのハンドルが必要です。 ハンドルを取得するには、Shell 関数の代わりに CreateProcess 関数

    シェル プロセスの終了日時を調べる
    hiroomi
    hiroomi 2023/03/12
    “CreateProcess”
  • Shell 関数 (Visual Basic for Applications)

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

    Shell 関数 (Visual Basic for Applications)
    hiroomi
    hiroomi 2023/03/12
    “プログラムの終了を待機するには、「シェル プロセスの終了のタイミングを決定する」を参照してください。”
  • 既存のメモ帳を開く 《Shell》|Access|ヘルプの森

    No.003 既存のメモ帳を開く 《Shell》 2003/2007/2010/2013 Accessをやっていて、いつも使っているメモを手軽に見ながら作業したいというようなことがありました。 いつものメモはフォームで作成設定する方法と、当のメモ帳を開くケースと2つあります。 前者は、ヘルプ「フォーム・レポートを別ウィンドウ(ポップアップ)で開くには」を参考にしてください。 今回は後者、当のメモ帳を開いてみます。 これはVBAで書きます。 まず、Accessから新規のメモ帳を開くには、例えば次の記述が簡単です。 Shell "notepad.exe", 1 Shell関数を使いました。 既存のメモ帳を開く場合は Shell "notepad.exe D:¥test¥memo.txt", vbNormalFocus と、開くファイルのパスを続けます。 最後の「1」と「vbNormalFo

    既存のメモ帳を開く 《Shell》|Access|ヘルプの森
    hiroomi
    hiroomi 2023/03/12
  • 【Excel】ファイルの存在確認をするマクロ(PowerShellのTest-Pathを使った方法)

    hiroomi
    hiroomi 2023/03/10
  • 【Excel】Microsoft Forms 2.0 Object Library の選択肢がない場合の参照設定方法

    VBE (Visual Basic Editor) の参照設定で Microsoft Forms 2.0 Object Library を追加したいのに、一覧のリストに表示されていない場合の対処法を紹介します。 現在のライブラリーの状況を確認VBA のメニュー [ツール] → [参照設定] から現在の状況を確認します。まずは Microsoft Forms 2.0 Object Library が追加されていないことを確認します。 参照設定の一覧はアルファベット順に整列。既に参照済みのライブラリーは上にまとめて表示しています。 Microsoft Forms 2.0 Object Library 追加手順直接ファイルを参照して追加する通常は画面に表示されたリストから、該当のライブラリーを見つけてチェックします。しかし次のように一覧に表示されていないケースもあります。 この場合、右の [参照

    【Excel】Microsoft Forms 2.0 Object Library の選択肢がない場合の参照設定方法
    hiroomi
    hiroomi 2023/03/10
  • Outlook/VBA 自作マクロをリボンにボタンとして設置する方法

    hiroomi
    hiroomi 2023/03/09
  • MailItem オブジェクト (Outlook)

    メール メッセージを表します。 注釈 CreateItem メソッドを使用して、新しいメール メッセージを表す MailItem オブジェクトを作成します。 Folder.Items プロパティを使用して、フォルダー内のメール アイテムを表す Items コレクションと Items.Item (index) メソッドを取得します。ここで、index はメール メッセージのインデックス番号、またはメッセージの既定のプロパティと一致するために使用される値を使用して、指定したフォルダーから 1 つの MailItem オブジェクトを返します。 例 次の Visual Basic for Applications (VBA) の例では、新しいメール メッセージを作成および表示します。 Sub CreateMail() Dim myItem As Object Set myItem = Applic

    MailItem オブジェクト (Outlook)
    hiroomi
    hiroomi 2023/03/09
  • VBA入門:Excelマクロを基礎から学習|エクセルの神髄

    最終更新日:2024-04-08 VBA入門:Excelマクロを基礎から学習 VBA入門シリーズは、ExcelマクロVBAを実務で自在に使いこなし業務を効率化・自動化できるようになることを目的としています。 始めはより詳しく丁寧に解説しつつ少しずつ難易度を上げることで無理なく学習を進められるようにしています。 マクロはエクセルの操作を自動化する機能であり、その中身はVBAというプログラミング言語で記述されます。 VBAはOffice製品に標準搭載されているプログラミング言語で、「Visual Basic for Applications」の略です。 エクセルに「マクロ機能」という自動化の機能があり、その中身がプログラミング言語である「VBA」で記述されています。 VBAで処理を記述していくことで、エクセル操作を完全自動化することができます。 VBAはプログラミング言語としても強力な機能を有

    VBA入門:Excelマクロを基礎から学習|エクセルの神髄
    hiroomi
    hiroomi 2023/03/09
  • Outlook/VBA: 自作マクロをリボンにボタンとして設置する方法 | 非IT企業に勤める中年サラリーマンのIT日記

    VBAといえば、ほとんどがExcelマクロのことを示しています。たぶん、多くの人はExcel上でしかマクロを組んだことがないんじゃないかと思います。VBAはWordでもPowerPointでもMicrosoft Officeであれば組むことができます。ニーズがExcelに集中しているのでほとんどの情報がExcelマクロになってしまうのですが。Microsoft Officeの1つであるOutlookでもVBAを組むことができます。PowerPointでマクロを組む気にはなりませんが、Outlookの場合はいくつか便利な機能があります。今回は基的な使い方を紹介します。まずはリボンの設定Outl...

    Outlook/VBA: 自作マクロをリボンにボタンとして設置する方法 | 非IT企業に勤める中年サラリーマンのIT日記
    hiroomi
    hiroomi 2023/03/09
  • 選択したメールがパスワード通知であれば本文中のパスワードをクリップボードにコピーするマクロ

    コメントにて以下のご要望をいただきました。 こんにちは、よろしくお願いします 決まった件名のメッセージを受信したら、データを CSV ファイルに保存するマクロ を参考にしてパスワードをクリップボードへコピーするようにできました ありがとうございます それで、この動作を「メール受信時」ではなく「メール選択時」にしたいのですがうまくできません Application_ItemLoad に記述すればいいと思ったのですが マクロ初心者でオブジェクトの概念が理解不足と感じています ■実現したい事 件名に「[パスワード/Password]」 の文字があるメールをプレビューするか開く時 文にある「パスワード : 」より後ろ、改行までの文字をクリップボードにコピーする ■使用環境 Windows10 outlook2016 よろしくお願いいたします ご認識の通り、アイテムを選択したタイミングで実行される

    選択したメールがパスワード通知であれば本文中のパスワードをクリップボードにコピーするマクロ
    hiroomi
    hiroomi 2023/03/08
    “ ' パスワードが見つかったらクリップボードへコピー”
  • VBAのソースを、Gitとかで管理する - Qiita

    問題点 業務でVBAを使うことがたまにありますが、Excelとか、Accessとかバイナリの中に組み込まれていて、Diffをとったりマージしたりが大変です。手作業でExportしてGitに入れてとかやったりもできますが、非常に面倒です。 ツール そんな問題を解決するツールを見つけました。Excel、Word、Accessに対応していて、非常に便利だったので紹介しておきます。 いげ太さんが作成されたものですが、かなり秀逸です。 ダウンロード Gitで公開されていますので、こちらからダウンロードしてください。 ダウンロードしたファイルの中に、vbca.wsfというファイルがありますので、今回はこれを使います。 事前準備 Excelセキュリティの設定を少し変更する必要があります。 セキュリティセンタから「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」をチェックしておいてくだ

    VBAのソースを、Gitとかで管理する - Qiita
    hiroomi
    hiroomi 2021/09/22
    “いげ太さんが作成されたものですが、かなり秀逸です。”
  • Office TANAKA - VBAのステートメント[SendKeys]

    SendKeysステートメント 構文 SendKeys string[,wait] stringには、アクティブウィンドウに渡すキーストロークを指定します。 waitは省略かのうです。Trueを指定すると、キーストロークが渡るまで処理を中断します。 解説 アクティブウィンドウに対して、キーボードから入力したのと同じようにキーストロークを渡します。 「3」や「A」などの文字は、ダブルコーテーションで囲って指定します。バックスペースやファンクションキーは{BACKSPACE}{F1}と、特殊なコードを指定します。Shiftキー、Ctrlキー、Altキーと同時に押すキーストロークは、「+」「^」「%」と合わせて指定します。 例 コマンド 意味

  • Excelブック単体でExcelVBAを疑似マルチスレッド化してみる - えくせるちゅんちゅん

    今回はExcelブック単体でVBAを疑似マルチスレッド化できるか実験を行い、見事成功したので紹介します。 きっかけ コード 結果 ちょっとだけ解説 Application.OnTime について まとめ きっかけ 最近(私の中で)話題な「Excel Piano」開発者のA氏がこんなツイートをしていました。 VBAで並列処理するのってどうやるんだろ… VBS呼び出せばいいけどWindows APIの呼び出しがExcel経由でやらんなんくてなんか面倒。 いいやり方知ってる人いたらリプください— あっさん (@Kabura_net14831) 2019年3月26日 彼の言うとおり VBScript を使うことで、並列処理をすることは可能ですが、いろいろと問題があります。 VBSで実現できる並列処理は、疑似マルチスレッド(実際にはマルチプロセス)である。 VBSはExcelのVBEの中でデバッグが

    Excelブック単体でExcelVBAを疑似マルチスレッド化してみる - えくせるちゅんちゅん
    hiroomi
    hiroomi 2019/03/27
    "ちゃんとした処理を書けばマルチコアCPUを使っているPCでは大幅に高速化できるよ"
  • 【超簡単】エクセルVBAでCSVファイルを読み込むマクロ

    VBACSVファイルを読み込むための「汎用CSV読み込みマクロ」を作りました。 CSVファイルを読み込むとき、通常の手順で開こうとすると次のように面倒な場合があります。 「1-2-3」→「2001/2/3」 「09012345678」→「9012345678」、など内容が変化してしまう 文字化けしてしまう テキストファイルウィザードで、データの形式を「文字列」に直すのが面倒くさい このページで紹介するマクロを使えば、このようなトラブルが避けられます。 若干、VBAの知識が必要になりますが、少し引数を指定するだけで、ファイルを適切に取り込むことができます。 他のホームページで公開されているマクロとは違い、かなり汎用性が高いプログラムだと思いますので、ぜひ、試してみてください。 このページで公開しているマクロでは、下記のような処理に対応しています。 文字列、金額のカンマ区切り、和暦など指定し

    【超簡単】エクセルVBAでCSVファイルを読み込むマクロ
  • エクセルVBAでHTTPリクエストをする最も簡単なプログラム

    みなさん、こんにちは! タカハシ(@ntakahashi0505)です。 エクセルからまさかHTTP通信をするときが来るなんて思ってもみなかったのですが、いよいよこのときがやってきました。 エクセルVBAでチャットワークAPIを活用する方法をシリーズでお伝えしていきます。 実際、GASのほうが簡単に実装できるのですが、企業によってはG Suiteが使いづらいという状況もあるようでして、実はニーズがあるようなのです。 今まで、気が付かずに申し訳ありませんでした。 てか、エクセルVBAとチャットワークの連携なんて、私が書かないで誰が書くんだ?というネタのはずなのに… ということで、元気よくやって来ましょう。 まず、最初はチャットワークAPIを使う事前準備として、HTTPリクエストを送れるようにならないといけません。 ということで、エクセルVBAでHTTPリクエストをする最も簡単なプログラムを紹

    エクセルVBAでHTTPリクエストをする最も簡単なプログラム
  • VBAでフォルダを移動させるMoveFolder、ファイルを移動させるMoveFileメソッドの使い方

    VBAでフォルダを移動させるMoveFolder、ファイルを移動させるMoveFileメソッドの使い方:VBA/マクロ便利Tips 業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、フォルダを移動させるMoveFolderメソッド、ファイルを移動させるMoveFileメソッドの使い方などについて。

    VBAでフォルダを移動させるMoveFolder、ファイルを移動させるMoveFileメソッドの使い方
    hiroomi
    hiroomi 2017/05/02
  • 選択したメッセージをまとめて一つのテキストファイルに保存するマクロ

    コメントにて以下のご要望をいただきました。 win10(32bit)、outlook2016を使用しています。以下の操作を手作業でやっていますが、マクロで行うことは出来ますでしょうか。 ・サブフォルダにある複数のメールを選択。(サブフォルダ内の全てのメールでも構いません。) ・選択した状態で「ファイル」「名前を付けて保存」をクリック。 ・任意のフォルダを指定、「ファイルの種類(テキスト)」を選択、ファイル名は例えば「123.txt」として保存する。 (結果的に、複数のメールの内容が並んだ1つのテキストファイルが作成されます。) 現在表示中のフォルダーの選択したメールをテキストに保存するマクロは以下のようになります。 フォルダーのすべてのメールを保存したい場合は ActiveExplorer.Selection を ActiveExplorer.CurrentFolder.Items として

    選択したメッセージをまとめて一つのテキストファイルに保存するマクロ
  • メールデータ解析のため、Outlookの分類フォルダをまたいでメッセージを一括テキスト変換 - StatsBeginner: 初学者の統計学習ノート

    Outlookのマクロ(VBA)に関するエントリです。 オライリーの『入門機械学習』はRによる機械学習の教科書で、正直どっちかというと今は「同じタイトルでPythonによる分析の教科書」の方が欲しい感じなのですが、これもけっこう写経しているだけでも勉強になります。 入門 機械学習 作者: Drew Conway,John Myles White,萩原正人,奥野陽,水野貴明,木下哲也出版社/メーカー: オライリージャパン発売日: 2012/12/22メディア: 大型購入: 2人 クリック: 41回この商品を含むブログ (11件) を見る 代表的な機械学習モデルの基的な処理が一通り解説されており、実際にサンプルデータを使って一からコードを書いて分析を進めていくという内容で、前処理から順番に「こういうところでこういう問題が起きるだろ?だからこうやって解決するんだぜ」みたいな感じになっており、

    メールデータ解析のため、Outlookの分類フォルダをまたいでメッセージを一括テキスト変換 - StatsBeginner: 初学者の統計学習ノート