VBA

各セルを読み込んで特定文字がある場合、背景色を黄色く強調するVBAのサンプルコード

各セルをループで読み込んで特定文字がある場合、背景色を切り替えるVBAのサンプルを紹介します。仕様ボタン押下後に表内のセルを全て検索して、特定の文字を含んだ場合に背景色を切り替えます。今回のサンプルはセル内に「か」を含んだ場合に、背景色を黄色にします。今回1つだけ工夫した点があり、ヘッダー行は除いています。ソースコードSub ボタン1_Click() '対象範囲を選択する(ヘッダー行は除く) With Range("A3").CurrentRegion 'そのままだとA1:C7まで選択されるので、 '行数を7行から5行へ2行減らす、かつアクティブセルをA1からA3まで2行ずらす .Resize(.Rows.Count - 2).Offset(2).Select End With '選択したセル範囲を全てループ For Each c In Selection If (InStr(1, c.Value, "か") > 0) Then '背景色を黄色にする c.Interior.Color = ColorConstants.vbYellow Else '背景色を白色にする c.Interio...
技術メモ

指定フォルダ以下の全ファイルのフルパスを取得するコマンド(コマンドプロンプト版)

コマンドプロンプトで指定フォルダ以下の全ファイルのフルパスを取得する、コマンドの備忘録です。コマンドプロンプト上に表示する場合dir /b /s /a-d c:\tempファイルへ結果を出力する場合dir /b /s /a-d c:\temp > c:\temp\files.txt※1 c:\tempはファイル一覧の対象フォルダ※2 >の個所は後ろにファイル名を記述することによって、ファイルリストの出力先をコマンドプロンプト画面からファイルに変更している。付加オプション一覧下記のオプションを使用しています。No.オプション説明1/bファイル名のみ表示する。2/sサブディレクトリも対象とする。3/a-da:アーカイブの準備が完了したファイル-d:ディレクトリを除く ※先頭に-を付加することで”除く”という指定になります。付加オプション一覧テスト実行実行準備:テスト対象フォルダの状態下記のようなフォルダをc:\tempに用意して実行してみます。また、c:\temp\testのような各サブディレクトリ(test,test2,test3)にも適当なファイルを格納しています。実行初心者でも大丈夫...
VBA

テキストファイルを読み込んで、正規表現で絞り込み、Excelに出力するVBAのサンプルコード

テキストファイルから読み込んで、正規表現で絞り込みして、Excelファイルに出力するVBAのサンプルを紹介します。仕様ファイルを1行ずつ読み込み、正規表現にマッチした場合、Excelセルに書き込みます。今回は正規表現の例として「^.A.$」のパターンにマッチしたものを抽出します。※正規表現の内容は「行の中にAの文字が含まれること」です。ソースコードSub ボタン1_Click() Dim i As Long Dim inputFileName As String Dim fileNumber As Long Dim fileLine As String '正規表現オブジェクトの設定 Dim reg As Object Set reg = CreateObject("VBScript.RegExp") With reg .Pattern = "^.*A.*$" '正規表現パターン .IgnoreCase = False '大文字と小文字を区別する .Global = True '文字列全体を検索するか(True) End With fileNumber = FreeFile inputF...
《広告》
VBA

各セルを縦に読み込んで行き、正規表現で整形しながら横のセルに出力していくVBAのサンプルコード

Excelの各セルを縦に読み込んで行き正規表現で整形しながら横のセルに出力するVBAのサンプルを紹介します。仕様ボタン押下後に、「変換前」の入力内容を正規表現で変換して、「変換後」に出力していきます。ここでは正規表現の中身を「Bが連続して続いたら、B一文字に変換する」にしてみます。ソースコードSub ボタン1_Click() Dim i As Long Dim maxRow As Long minRow = 2 maxRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row '最終行 '正規表現オブジェクトの設定 Dim reg As Object Set reg = CreateObject("VBScript.RegExp") With reg .Pattern = "B+" '正規表現パターン .IgnoreCase = False '大文字と小文字を区別する .Global = True '文字列全体を検索するか(True) End With For i = minRow To maxRow Cells(i, 2).Va...
技術メモ

テキストの各行をコピーして2行ずつに増やす正規表現を紹介

テキストの各行をコピーして2行ずつに増やす正規表現を紹介します。実行環境今回はサクラエディタと呼ばれる、ボランティアベースで開発されている素晴らしいテキストエディタで正規表現を実行しております。ただ、正規表現さえ使用可能であれば、エディタは何でも良いかと思います。解決したい事象例を見たほうが分かりやすいかと思われますので、下記の通り例を示します。事象の例例としては下記の通り、文字列が並んでいるとします。※分かりやすくするため、行数は短めで適当な内容です。あいうえおかきくけこさしすせそ上記の文字列に示した各行を、コピーして2行ずつにすることを考えます。あいうえおあいうえおかきくけこかきくけこさしすせそさしすせそ使用する正規表現エディタの「置換前」および、「置換後」の指定で、下記の正規表現を指定します。サクラエディタの場合、Ctrl+Rで置換ダイアログが出てきますので、そこで下記の値を指定します。(なおサクラエディタの場合、この際「正規表現」のチェックボックスにチェックを入れないと正規表現で認識されないので注意が必要です。)置換前^(.+)$行の先頭から行の末尾までのすべての文字列を抽出し...
VBA

全てのシートのカーソル位置をA1に移動し、拡大率100%にするVBAサンプルコード

Excelファイル内のすべてのシートのカーソル位置をA1に移動し、拡大率100%にするVBAサンプルを紹介します。仕様「ボタン」を押すと「読み込みExcelファイル」のパスからExcelを開き、各シートの選択セルをA1セルにし、拡大率を100%にします。画面仕様ソースコードSub ボタン1_Click() 'このブックを取得 Set myWorkBook = ThisWorkbook 'A1に固定するExcelのパスを取得 Dim filePath As String filePath = myWorkBook.Worksheets("Sheet1").Cells(2, 2).Value 'ターゲットのブックを開く Workbooks.Open Filename:=filePath Set targetWorkBook = Workbooks(Dir(filePath)) '全シートループ For Each targetSheet In targetWorkBook.Worksheets targetSheet.Activate 'A1セルを選択 Application.Goto Re...
技術メモ

都道府県にマッチする正規表現をいくつか考えてテストしたので紹介

都道府県にマッチする正規表現をいくつか考えて、テストしたので紹介します。テスト環境今回はサクラエディタと呼ばれる、ボランティアベースで開発されている素晴らしいテキストエディタで正規表現を実行しております。都、道、府、県の4つでまとめた「都道府県検出正規表現」コード(東京都|北海道|(?:京都|大阪)府|.{2,3}県)47都道府県を、「都、道、府、県」の4行政機関ごとにまとめた正規表現です。テスト結果「下関県」や「山本県」などの間違いが混じっているとヒットしまう欠点があります。ただ、選択メニュー等から吐き出された文字列を結合している住所の場合はこれで十分です。可読性がやや落ちるため、正規表現の説明は少し大変かもしれません。「県」のみ、ひとまとめにした「都道府県検出正規表現」コード(東京都|北海道|大阪府|京都府|.{2,3}県)47都道府県のうち、京都府と大阪府はまとめず”県”のみ1つにまとめています。「都道府」は数が少ないので完全表記で、県は2,3文字に収まっていればOKという内容の正規表現です。テスト結果これも県はざっくりとした確認なので「下関県」や「山本県」にヒットしてしまいます...
PowerShell

PowerShellで正規表現を使って、フォルダ内のファイル名を一括変換する方法を紹介

PowerShellと正規表現で、指定したフォルダにあるファイルの名前まとめて変換する方法を紹介します。仕様動作仕様Windows PowerShellでフォルダ内のファイル名を、全てまとめて変換します。ただし、様々なファイル名の形式にできてしまいますので、今回は以下の例題をもとに考えます。例題フォルダ構成c:\temp\test2の下に、下記のファイルが格納されているものとします。例題フォルダ内のファイル「test1_test0001_nnnn.txt」のうち、「test0001」の個所をまとめて「abc」に置き換えます。使用する正規表現下記の正規表現で、「test0001」の個所を検索します。(?<=^test1_)test{4}test1_で始まる個所から読み込んで「test+4文字の数字」のある部分を検索する正規表現です。※また、実は別にこんな凝った正規表現でなくとも、「test0001」でも十分なのですが、「test2_test0001_0002.txt」や「test1test0001_0002.txt」、「test1_test0001_test0001.txt」のようなファ...
Excel

Excelで丸数字(①②③・・・)をマウスで引っ張って一括で入力するテクニックを紹介

Excelで丸数字(①②③・・・)をマウスで引っ張って、一括で入力するテクニックを紹介します。やりがちなミス単純に①②と入力してマウスで引っぱるまずはマウスで引っ張って、丸数字(①②③・・・)の連番を振ってみます。ちなみにこの機能はオートフィル機能と言います。ただやり方は知っていても、機能の名前は意外に知らない人が多いです。しかし以下のキャプチャの通りうまくいきません。①②①②①②・・・とただの繰り返しとなって、①②③④⑤のような数字の連番が振られません。何で?どうすればよい?原因まず、①②①②①②・・・となる理由できない原因はなんでしょう?①②③④・・・の値はExcelにとって、数字ではなく文字扱いです。1,2,3,4・・・の値はExcelにとって、数字です。①②③④・・・は数字ではないので「文字を交互に出力したいのだ!」と誤認されています。実際、AとかBとかの文字で同じ操作をすると、丸数字と同じ動作をしますよね?↓↓↓↓↓↓↓1,2,3,4・・・はExcelにとって数字です。①②③④・・・・はExcelにとって文字です。(数字がデザインされた文字です)解決策ではどのようにすればよい...
VBA

Excelシート上にフィボナッチ数列を表示するVBAのサンプルコード

Excelシート上にフィボナッチ数列を表示するVBAのサンプルを紹介します。フィボナッチ数列とはまずフィボナッチ数列が分からないとコーディングできないので、簡単にフィボナッチ数列をおさらいします。フィボナッチ数列とは、前の2つの数字を足していって次の値を追加してできる数列です。フィボナッチ数列の計算手順最初は1と1の2つの数字を足します。すると1+1=2で「1,1,2」の数列ができます。次は1+2=3なので、「1,1,2,3」の数列ができます。次は2+3=5なので、「1,1,2,3,5」の数列ができます。以降もこれを繰り返して下記の数列が出来上がります。1,1,2,3,5,8,13,21,34,55,89,144,233・・・これがフィボナッチ数列となります。プログラムの仕様画面仕様ボタンを押下すると、「求める項数」に指定した数分、フィボナッチ数列を4行目に作成します。以下の画面だと10個の数列ができます。画面項目仕様画面の中の各項目の項目仕様は、以下のとおりです。No.項目名説明備考1求める項数出力する項の数です。2項項番号を示す行です。3フィボナッチ数列ボタンを押下した際にフィボナ...
《広告》