キーボードのホームポジションに手を置いたまま画面上のカーソルを動かせれば便利なのに。この長らく放っておいた課題を解決する方法を見つけました。

例えば、「無変換」キーと「J」を同時に押すとカーソルが左に動く、という風に、ホームポジションから近いキーを使ってカーソルキーやHomeキー、Endキーの働きを実現することができます。これで、コードを書いたり、テキストを編集したり、いろいろな場面でタイピング作業を効率化しストレスを軽減できます。

<使うもの>

Listviewで選択している行などから、そのデータソースになっているテキストファイルをWindowsのメモ帳(notepad.exe)で開き、所定の行にフォーカスする方法です。SendKeysを使ってメモ帳の操作を行います。

プログラム名とテキストファイルのパスを渡してメモ帳を起動した後、検索操作と行を探すための検索キーワードなどをSendKeysでメモ帳に送ります。

<下準備>

適当なテキストファイルを作り、text.txt と名前をつけてCドライブの直下に置く

<ポイント>

SendKeys の後に処理が終わるのを待つためにスリープを入...

Excelのユーザー定義関数です。明治~令和対応の日付関数で、日付を渡すと、指定の書式に変換して返してくれます。また、「元年」表示、年度表示などにも対応しています。

主な特徴

  • Excel標準の日付書式設定に対応

  • 年度表示対応

  • 「元年」表示対応

関数の構成 

DateEX([日付], [書式], [元号初年を「元」と表示するか否か], [年度の初日] )

(入力例1) =DateEX("2019/5/1", "gggee年mm月dd日")         (結果)  令和01年05月01日...

DAO.DBEngine というライブラリを使うと、AccessやAccessランタイムがインストールされていないPCからでもとても簡単にmdbファイルやaccdbファイルを最適化することができます。

異なる3つの形式で試してみたところ、全てあっけないくらい簡単に最適化ができました。下記はそのテストに使ったソースコードです。

下準備として、まずは最適化したいmdb/accdbファイルを用意し、Excelファイルと同じフォルダに入れて下さい。

ExcelのVBEで標準モジュールを追加し、下記のコードを貼り付けて使って下さい。

ソースコードの青...

要するにOCRです。Google Cloud Vision APIに画像ファイルを含んだリクエストを送信すると、画像から文字列を抽出してテキストを返してくれるので、そいつを受け取って何かに利用したい場合にお試し下さい。 

とりあえずすぐに動くものが欲しかったので、エラー処理とか細かいことは無視してます。

APIに渡すリクエストとAPIから返ってくるレスポンスはJsonで扱いますが、どちらも力技で解決してます。

ちゃんとしたい人は、Jsonを扱うVBA-Jsonとかいう便利なライブラリがあるのでそちらをどうぞ。

<下準備>

 - Google...

一行一行、結合されたセルに入力していくJapaneseスタイルの報告書作成を楽にするマクロです。

以前作ったものは英語版だけでしたが、今回は、日本語も対応した改良版です。64ビットだと動かないかも。

あのVBAの大家 t-hom’s diary さんが日本語を扱える素晴らしいコードを書いてらっしゃるのでそちらをベースにして作りました。基のテキストにあわせて改行するように手を加えました。

<実行後のイメージ>

<下準備>

まず、メモ帳その他テキストエディタで、改行を含め、普通に編集したテキストを用意してください。

次に、下図のように、一行一行セル...

コマンドボタンのClickイベントプロシージャー等に記述した処理を標準モジュールなどから再利用する方法

画像をリサイズするフリーソフトは山ほどあるし、Excelシートに挿入した画像のファイルサイズを小さくするのなら基本機能の「図の圧縮」を使うのも良いのですが、VBAでもリサイズのコードを書くことができます。WMIというライブラリがあると聞き、早速使ってみました。

使い方

参照設定で Microsoft Scripting Runtime  と Microsoft Windows Image Acquisition Library   にチェックを入れて下記のコードを標準モジュールに貼り付けて使って下さい。元の画像のフルパスとリサイズ後の画...

BackspaceキーやDeleteキーの代わりにコマンドボタンを使ってテキストボックスの文字の削除を行うマクロです。

機能

‐ 文字が選択されている場合は、その文字を削除します。

‐ Backspace: カーソルの位置の左側の文字を一文字削除します。

- Delete: カーソルの位置の右側の文字を一文字削除します。

- 文字列を全て選択します。

使い方

‐ 下記のサンプルコードを標準モジュールに貼り付ける。

‐ ユーザーフォームにテキストボックス、ボタンを配置する。

- ボタンのClickイベントプロシージャーに Call txtBackSpa...

この手のツールはしょっちゅう作るので、コードを効率よく再利用できるようクラスを作りました。通常はコントロールのイベントプロシージャーに書く複雑なコードをWithEvents 付きのクラスに詰め込みました。

応用例として画像ファイルの閲覧とセルへの貼り付けを行うマクロを紹介します。

機能

- ListView1上に 画像をドロップするとOLE DragDropイベントが発生して、パスとファイル名をセットする

- リスト上で選択した行の画像ファイルをImage1コントロール上に表示する

- リスト上で選択した行を上下に移動してリストを並べ替える...

Please reload

特集記事

Excel VBA SendKeysでメモ帳を操作

August 7, 2019

1/10
Please reload

タグから検索
アーカイブ