Learning Note

できるようになったことを記録しています

処理系

Accessのif関数でNullを使うポイント

Microsoft Accessのクエリでif関数を使用する場合 書式 label:IIf(★=★★,"TRUE","FALSE") ★と★★が一致すれば"TRUE"を返すが、値がNull同士の場合TRUEにならないため、Is Nullを用いて条件を追加する。 label:IIf(Is Null(★)And Is Null(★★),"TRUE",IIf(★=★★,"…

指定したフォルダ以下の指定した拡張子ファイルを検索する

fnmatchの引数に拡張子を指定することで、指定した拡張子のみを検索して表示する。

セルの最終行を調べる

今更な感じの基本的なテクニックだが、ほかの言語を触るとすぐに忘れてしまうので記事にしておく。 Dim MaxRow As Long MaxRow = Cells(Rows.Count, 1).End(xlUp).Row "Rows.Count"はsheetの最終行 xlsxなら1048576、xlsファイルなら65536.Endプロパティは …

ファイルをコピーしてリネームする

shutilモジュールのcopy関数を使用して"fromPath"の内容を"toPath"へコピーします。

フルパスからディレクトリが存在しなければ作成する

os.path.dirname()でフルパスからディレクトリ名を返す。 os.path.exists()でファイルやディレクトリの有無を調べる。 os.makedirs()でディレクトリを作成する。

指定フォルダ以下のフォルダを再帰的に検索

Python3.6で指定したフォルダ以下に存在するフォルダ名を表示する処理。

指定したフォルダ以下のファイルを再帰的に検索

Python3.6で作成。指定したフォルダ以下のファイルを再帰的に検索し、画面に表示する。過去記事でVBAでも同じ処理を作成したが、Pythonだと10行足らずで書けてしまう。import osでOSモジュールをインポート。 os.walk()でパス以下のファイル・ディレクトリ一…

ネットワーク上のPCからデータをrobocopyする

ネットワーク上に存在する他PCのデータをrobocopyする際は、net useコマンドで事前にネットワークドライブとして接続しておく。 net use e: /delete net use e: \\PC-01\Share password /user:PC-01\username robocopy e:\ d:\Share /E /MIR /R:1 /W:1 /XO /…

ファイルをコピーしてリネームする

FileCopyステートメントでファイルをコピーする関数。コピー先の同名ファイルが存在する場合は上書きされる。

連想配列を用いて配列内重複チェック

Dictionaryオブジェクトで連想配列を作成。重複データを登録できない特性を生かして重複データが存在しないかチェックする。

配列の文字列を半角に変換して返す

配列を引数として渡し、全角の文字を半角に変換して返す関数。カタカナが入っているようなデータは要注意。

存在しないフォルダでも作成する

SHCreateDirectoryExというAPIを使用して存在しないフォルダでも1回の処理で作成する。

シート名を配列に格納する

シート名を配列に格納する関数 使用例 Sub main() Dim WB as Workbook Set WB = ActiveWorkBook Dim mySheetName As Variant mySheetName = CheckSheetName(WB) End Sub

配列を多次元配列に変換する

配列データを多次元配列に変換するための関数。多次元配列は途中で列数を増やすことができないため、事前に設定された列数より取り込む要素が多い場合は処理を終了するようにした。 使用例 Sub Main() Dim lineTxt As Variant lineTxt = ImportTxt("C:\bin\t…

配列から不要文字を削除して返す

関数を書くほどでもないかもしれないが、使用頻度はそこそこあるので作ってみた。 使用例 Sub Main() Dim testAry() As Variant: ReDim testAry(2) testAry(0) = "1,1" testAry(1) = "2,2" testAry(2) = "3,3" testAry = RemoveChar(testAry, ",") End Sub …

別ブックからシートをコピーする

シートをコピーするにはCopyメソッドを使用します。例えば、同じブック内の"コピー元"という名前のシートを"Sheet3"という名前のシートの後ろにコピーする場合 Sheets("コピー元").Copy After:=Sheets("Sheet3") 別ブックに存在する"コピー元"シートをコピー…

robocopyでファイルをコピーする

手動でのファイルコピーはミスが起こりやすいため、大量のデータを扱う場合などは「robocopy」というコマンドが便利。*WindowsVista 以降のOSに標準搭載。 書式 robocopy コピー元ファイルのパス コピー先ファイルのパス オプション 例えば、「C:\test」の…