ラベル vba の投稿を表示しています。 すべての投稿を表示
ラベル vba の投稿を表示しています。 すべての投稿を表示

2023年5月4日木曜日

Excel VBAで正規表現マッチを使ったカスタムワークシート関数の作成

はじめに

Excelの標準機能では、セル内のテキストに対して正規表現を使った一致判定を行う機能がありません。しかし、VBAを使って独自のワークシート関数を作成することで、正規表現を活用した柔軟なテキスト処理が可能になります。今回は、Excel VBAを使って正規表現マッチを使ったカスタムワークシート関数を作成する方法を解説します。

この関数で使える正規表現の例はこちら

2023年4月27日木曜日

Excel VBAで重複データを削除するカスタム関数を作成・・・したらデフォルトでunique関数が用意されてた話

はじめに

データセットには、重複したデータが含まれることがあります。通常重複データの削除はメニューから実施しますが、定常作業で毎日のように実施したり、定型的なフォーマットで関数として実現したりしたい場合は、今回紹介するVBAによるカスタマイズワークシート関数を使用する事でわざわざ毎回メニューから操作せずとも重複を排除したデータがワークシート上で使用できるようになります。

2023年4月26日水曜日

Excel VBAを使ったカスタム関数の開発と実用事例

カスタム関数は、Excelの標準関数にない機能を実現するために、VBAを使って作成されるユーザー定義関数です。これにより、独自の計算やデータ操作が可能になります。以下に、カスタム関数の開発方法といくつかの実用事例を紹介します。

2023年4月24日月曜日

ExcelVBAによるウェブスクレイピングの基礎

1. はじめに

ウェブスクレイピングは、ウェブサイトからデータを抽出する技術だったり行為だったりを言います。Excel VBAは、WebページのHTMLコードに簡単にアクセスでき、データの抽出が可能で、さらに皆さんが使い慣れたExcelで抽出したデータを取り扱えるため、Webスクレイピングのツールとして利用可能です。今回は、Excel VBAを使ったWebスクレイピングをステップバイステップで解説します。

2023年4月8日土曜日

Excelファイルを開いた際に自動でマクロを実行する方法

Excelマクロをファイルを開いたタイミングで実行させる方法の概要。

標準モジュールに実行マクロ(MyMacro)を作成し、ThisWorkbookからWorkbook_OpenのイベントハンドラでCallで呼び出す。

 Private Sub Workbook_Open()
     Call MyMacro
 End Sub

Excelファイルを開いた際に、特定のマクロを自動的に実行する方法について説明します。この方法を利用することで、繰り返し手動でマクロを実行する手間を省くことができます。

詳細手順は以下の通り。

2023年3月14日火曜日

2023年3月10日金曜日

今更だけどChatgptやばい(二つの表のデータ差分を抽出するVBAが書ける)

今更だけどChatgptマジでやばいな。これコーディングだけやってる様な人の仕事マジでなくなるぞその内。

下記のコミュニケーション(らしきもの)が成立して、しかも成果物のコードがそれなりに動いてやがる。。。

以下実際の履歴。。。

2021年6月7日月曜日

Excelで異なるカラム構成のCSVを2つ読み込んで、共通のキーとなる値でデータを結合する

Excelで異なるカラム構成のCSVを2つ読み込んで、共通のキーとなる値でデータを結合する。

データベース的に異なるファイル同士の情報を結合したいケースってありますよね。

Excel馬鹿、って言葉が聞こえてこなくもないが、いろいろと課題満載のこのテーマ。

何とか解決したので、記録しておきたい。

※↓のファイルの各シートやコードを見ながらだと理解がスムーズだと思われる。

https://1drv.ms/u/s!AqGyTO4ulx7loiRR-K8FS5KiCriz?e=NX55sv

 →サンプルデータとマクロファイルセットになってます。

まずは状況の整理から。

2021年5月1日土曜日

Excel VBAでPowershellスクリプトを引数付きで実行する方法

以前こちらの記事で参考にしたソースコードでは一部うまく行かないケース(ps1スクリプトに与える引数が正しく渡せない)があったので動くように改善してみました。

Excel VBAからPowershellスクリプトを引数付きで実行する方法について解説します。関数化して、汎用性を持たせることで、複数のスクリプトを扱う場合やpowershell側の期待する引数の数が幾つの場合であっても簡単に実行できる様にしています。

2021年4月19日月曜日

エクセルのワークシート関数を独自に定義する(任意のセル範囲の文字列に対するSHA256ハッシュ値を取得する)

Excel VBAは言わずもがな強力なツールであるが、ユーザへのアナウンスというかマニュアル作成というか、まぁ使ってもらうためのお膳立て面が面倒だったりする。

そこで、VBAで組んだ機能をワークシート関数化してしまえば、そのファイルの中ではワークシート関数(=sum(A1:A10)の様なのと同じ扱い)として使用可能になる。

場面により使える場合使えない場合があるが、VBAで作り込んだ機能の説明を0から行うよりは、簡単になる場面が多いかと思われる。

今回は引数とした任意のセル範囲の文字列に対するSHA256ハッシュ値を取得する関数をVBAで作成し、ワークシート関数として使用してみたい。

ちなみに標準のワークシート関数では現在のところ文字列のハッシュ値を取得は不可。

2021年4月14日水曜日

Excel VBAで異なるテーブルに存在するデータをキーとなる値を使って大量・高速に結合する

こんな状況がある。

従業員うん万人、

システムAのテーブル1にユーザIDと所属部署の情報、

システムBのテーブル2にユーザIDと居住都道府県の情報、

がそれぞれ格納されている。

システムA、Bともに外部へのデータ連携手段としてはCSVファイルのダウンロードのみ提供している。

私はシステムCの担当者でキーとなるユーザIDに所属部署と、居住都道府県両方の情報を紐づけてシステムCへインポートしたい。

色々とやり方はあるが、予算もないのでExcelで何とかする。

ワークシートに関数を入力してVlookupやらMatch+IndexやらやればVBAを使わずとも実現できるのだが、現実の場面ではシステムA,B共に他にも結合したいカラムが多数あってワークシート上に関数を大量に入力した神エクセルでは重くなって破綻するのが怖い。

データベースに取り込んじゃってjoinするってのもありだが、将来誰かに引き継ぐ事を考えると、裾野が広いExcelにしておきたい。

こんな場面をVBAでどう乗り切るかのアイデア。

2021年4月7日水曜日

Powershell+Excel VBA周りの( ..)φメモメモ

Excel VBAから引数を渡す.ps1スクリプトを呼び出してExcelマクロで全体の処理をハンドリングするための材料調査。

という事でそこそこ簡単に実現できそうだ。

調べた内容は次の二点。

やりたい事①:VBAからのPS1スクリプト呼び出し。

やりたい事②:PS1スクリプトで引数を受けるお作法

ウェブサイトのURLにおけるトレイリングスラッシュの解釈と有無による動作の違い

インターネットが現代社会におけるコミュニケーションの基盤となっている今日、ウェブサイトのURLはビジネスや個人ブランディングにとって重要な役割を果たしています。URLは単にウェブページへの経路を示すだけでなく、SEO(検索エンジン最適化)においても重要な要素です。この記事では、U...