–vba-geek.jpからお引っ越し。VBA以外の情報の方が多くなってきたので名前も変えてリニューアルしました。2022.11.09カッコ"("や角括弧"["などの記号で囲まれた(くくられた)文字列から記号を省いた中身の文字列だけ抽出するVBAの関数(ファンクションプロシージャ)のサンプルプログラムを覚書。(abc)という文字列からabcだけを抽出することができるようにする関数のプログラム。abc(DEF)ghiだったらDEFが抽出できる。サンプルプログラムは、ExcelのVBAでFunctionプロシージャとして作っているので、普通にワークシート関数として利用できるようになっているけど、AccessのVBAでも同じように作成すればクエリーの式の中でも使用できる。記号で囲まれた文字列の中身だけを取り出すVBAのサンプルプログラムこのプログラムの考え方は以下のとおり。例としてカッコ"("で囲まれた文字列の抽出を例として説明しています。囲み開始のカッコ"("の文字位置を検索して見つかった場合はその文字位置を表す数値を変数1に代入する。囲み終了のカッコ")"の文字位置を囲み開始のカッコ"("以降の文字列から検索して見つかった場合は、その文字位置を表す数値を変数2に代入する。"("、")"の両方が文字列中にある場合のみ(変数1、2の両方が0でない)中身の文字列を抽出する処理をさせたいのでIf文で条件判断をさせる。(Instr関数は対象文字列に指定した文字がない場合0を返す)抽出する文字列は"("の後からの文字列となるので、変数1の文字位置に+1した値を変数1に代入し直す。変数1」数分文字列を抽出して、抽出した文字列を関数の返り値として返す。"("と")"のどちらか、あるいは両方がなかった場合は処理をせずに長さ0の文字列を返す。VBAのサンプルプログラム以下文字列を取り出すサンプルプログラム。セルA1に"(abc)"と入力されていて"abc"だけを抽出してセルB1に入力する場合は、セルB1に以下のように記述する。=ExtractionStrings(A1)囲み記号をワークシート関数の中で指定したい場合のVBAのサンプルプログラム上記に紹介したプログラムだと囲んでいる記号がプログラムの中で指定している1種類のみに限定されている。"(XXXXX)"とか"[xxxxx]"とか、囲んでいる記号が複数の種類になっている場合、いちいち関数のプログラムを増やしていくのは現実的ではないのでワークシート関数として使うときに囲んでいる記号を関数の引数として指定できるようにした。変更したVBAのサンプルプログラムコード囲み記号を任意の記号に設定できるように改版したプログラム。Functionワークシート関数として使う場合の使い方ワークシート関数として使用するときの関数の引数の指定の仕方は以下のとおり。=ExtractionStrings(対象セル,"囲み開始記号","囲み終了記号")例えば、"("と")"で囲まれた文字列から中身を抽出するときは、ワークシート関数として使うときには以下のように式を入力する。=ExtractionStrings(A1,"(",")")"["と"]"で囲まれた文字列から中身を抽出する場合は以下のようになる。=ExtractionStrings(A1,"[","]")"(ダブルクォーテーション)で囲まれた文字列から抽出するときの例"(ダブルクォーテーション)で囲まれた文字列を抽出する際は、引数の指定に少し注意が必要です。関数の引数として囲み記号を"(ダブルクォーテーション)でくくる仕様になっているので、"(ダブルクォーテーション)を"(ダブルクォーテーション)でくくる場合は以下のように指定してください。=ExtractionStrings(A1,"""","""")"を"でくくる場合""で"を表すルールになっています。VBA:特定のセルの値が変更されたとき(更新後処理イベント)だけVBAのプログラムを実行する方法セルに設定できる標準の機能では足りなかったり、やりたい処理と微妙に違っていてオリジナルの処理を実行させたいときに使える。以下VBAのサンプルプログラムと説明。単語と単語を半角スペースで区切った文字列を受け取ってLike演算子(前方/後方一致)を使った検索条件のWhere句に変換するユーザー定義関数をAccessのVBAで作成したので覚書きしておきます。VBAExcelのVBAでGetOpenFilenameメソッドを使ってCSVファイルから読み込んだデータをアクティブセルに貼り付けるサンプルプログラムGetOpenFilenameメソッドを使いダイアログボックスを表示して選択したCSVファイルのデータをインポートしてアクティブセルを起点に貼り付けるサンプルプログラム。VBA:次の営業日(翌営業日)を返すユーザー定義関数AccessのVBAを使用して指定した日を起点として次の営業日(翌営業日)を返すユーザー定義関数のサンプルプログラムを覚書。VBA共通VBA共通:デスクトップフォルダやマイドキュメントフォルダなどWindowsの特殊フォルダのパスをVBAで取得するサンプルプログラムマイドキュメントフォルダやデスクトップフォルダなどログインユーザーによってパスが変わるフォルダやWindowsがセットアップ時に作成するSystemフォルダなどの特殊なフォルダのパスをVBAで取得するサンプルプログラムを覚書。文字列データに混ざっている半角カタカナを全角カタカナに変更するユーザー定義関数のサンプルプログラムを覚書。記事ではExcelを使用していますが、基本的にはAccessのVBAなどでも同じように使用できます。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。存在しないか、アクセスが拒否されました。最近のコメントパパング♂2024.08.08デスクトップテーマの表示方法が変わったので大変記事が参考になりました。ありがとうございます。issue...マルウェア:「新しいHao123をスタートページに設定しませんか?」メッセージを二度と表示させないようにする方法ななし2023.10.15結局この手のコピペ記事は、じゃあ何がクリップボードにアクセスしているのか、という原因にアプローチしていないExcel:セルをコピーしたときに「内容をクリップボードにコピーできませんでした。...」メッセージが表示されるたなかみみ2023.10.07記事を拝見しました。公式チャンネルの動画(アーティストのミュージックビデオとか)に対応していないのがちょっと残念ですね。征子2023.10.07エラー内容をクリップボードにコピーできませんでした。他のアプリケーションで使用されています。このブック内にコンテンツを貼り付けすることはできますが、他のアプリケーションでは使用できません。表示でコ...Excel:セルをコピーしたときに「内容をクリップボードにコピーできませんでした。VBAVBA共通サイトポリシーサイトマップホーム検索トップサイドバータイトルとURLをコピーしました。