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フィボナッチ数列ボタンを押下した際にフィボナ...
技術メモ

改行だけの行を削除して行を詰める正規表現を紹介

テキストエディタの改行だけの行を削除して詰めたい場合に、使用するテクニックを紹介します。手作業でやっている人を良く見かけて、案外知らない人が多かったりするので、紹介してみます。解決したい事象下記のキャプチャの青矢印で示したような空行を、削除して行を詰めます。ここではサクラエディタを例に紹介しますが、エディタについては正規表現が使用できればなんでもOKです。解決したい空行が含まれるテキストの例改行コードのみの行一括削除手順置換の実行前テキストエディタの置換メニューを開きます。(Ctrl+R)置換ダイアログで置換前と置換後に下記の指定をして、全ての行に置換を実施します。入力項目入力値説明置換前^\r\n行頭の次の文字がCRLFの改行コードになっている行を指定しています。置換後何も指定していません。つまり置換前にヒットしたものを空に置換することによって、削除します。置換ダイアログ入力値置換の実行後置換の実行後は下記のキャプチャの通りになりました。全て置換すると空行が削除され、文章がある行だけになります。数文字程度の正規表現を覚えておくだけで簡単にできる作業ですが、覚えておくだけで作業効率が格...
技術メモ

改行コードの不揃いを正規表現で統一させる方法を紹介

改行コードがバラバラのテキストファイルを、正規表現によって統一する方法を紹介します。解決したい事象改行コードがバラバラのテキストをCRLFかLFのどちらかに統一します。ここではサクラエディタを例に紹介しますが、エディタについては正規表現が使用できればなんでもOKです。例以下の画像では、青矢印の個所の改行コードが他と異なっています。改行コード統一手順置換前テキストエディタの置換ダイアログを開きます。(Ctrl+R)置換ダイアログの置換前と置換後に下記の指定をして、全ての行に置換を実施します。※ダイアログの「正規表現(E)」にチェックを入れるのを忘れないでください。入力項目入力値説明置換前\r\nCRLFの改行コードを指定置換後\nLFの改行コードを指定置換ダイアログ入力値置換後全て置換を実施すると、下記の画像の通りすべての改行コードが全てLFに統一されます。CRLFに統一したい場合上記の場合はLFに統一されています。Windowsの改行コードであるCRLFに統一したい場合は続けて、下記の手順を実行します。置換前置換ダイアログの置換前と置換後に下記の指定をして、全ての行に置換を実施します。...
VBA

Windows上のフォルダにあるファイルを、Excelシート上に一覧表示するVBAのサンプルコード

Windows上のフォルダにあるファイルを、Excelシート上に一覧表示するVBAのサンプルコードを公開してみます。仕様画面仕様シートの「検索パス」のセルに検索対象のフォルダのパスを入力しています。右側の「一覧表示」ボタンを押したときにファイル一覧が出力されます。ファイル名ファイルのフルパスファイルへのリンクソースコードDim RowNo As LongDim No As LongSub ボタン1_Click() Application.ScreenUpdating = False RowNo = 5 No = 1 Call ClearList Call FileSearch(Sheets(1).Cells(2, 2)) Application.ScreenUpdating = True End Sub'一覧初期化Sub ClearList() Dim lastRow As Long lastRow = Cells(Rows.Count, 1).End(xlUp).Row Sheets(1).Rows("5:" & Cells.Rows.Count).Delete End Sub'ファ...
VBA

REST APIを利用して、郵便番号一覧から住所を求めていくVBAのサンプルコード(郵便番号検索API版)

REST APIを利用して、郵便番号一覧から住所を求めていくVBAのサンプルコードを公開してみます。ここでは「郵便番号検索API」のサービスを利用してコードを作成します。使用するWebAPIExcel単体で住所情報の取得・検索はできないので、下記「郵便番号検索API」の力を借りています。サービス名郵便番号検索API運営zip.cgis.bizURL郵便番号検索API(概要郵便番号検索APIでは、郵便番号から住所を検索するWEBサービスAPIを無料提供しております。仕様画面仕様シートのA列に住所を求めたい「郵便番号」の一覧を入力しています。シートの右側に住所を出力するための実行ボタンが配置されています。実行ボタンを押下すると、シートのB列とC列に「住所」と「住所(カナ)」が出力されます。ソースコードSub ボタン1_Click() Dim objXMLHttp As Object, zipArr Dim yubinNo As Long Dim line As String Dim splitLine() As String Dim i As Long i = 2 '行番号 Do Whil...