2017-01-01から1年間の記事一覧
Microsoft Accessのクエリでif関数を使用する場合 書式 label:IIf(★=★★,"TRUE","FALSE") ★と★★が一致すれば"TRUE"を返すが、値がNull同士の場合TRUEにならないため、Is Nullを用いて条件を追加する。 label:IIf(Is Null(★)And Is Null(★★),"TRUE",IIf(★=★★,"…
fnmatchの引数に拡張子を指定することで、指定した拡張子のみを検索して表示する。
以前似たような処理を書いたが、今回はCSVファイルへ出力する応用編。ファイルの場合 フォルダの場合 検索で見つかったファイルやフォルダをfor文で1行ずつCSVファイルへ出力している。
拡張モジュールのnumpyとか使えばもっとスマートにできるのかも。
読み込んだCSVファイルを1行ずつappendで配列へ取り込んでいる。appendの代わりにextendを使う方法もあるが、違いは以下の通り。 append リストオブジェクトそのものを追加 [["A"],["B"],["C"],["D"],["E"]] extend リストの最後に追加 ["A", "B", "C", "D",…
csvモジュールのwriter関数で書き込みます。
熟練プログラマの作業画面を除くと、よく黒基調な画面で作業しているのを見かけます。 今までは「昔風な画面が好きなのかな?」程度に留めていましたが、自身でプログラムを書く時間も増え、その配色の意味を身をもって痛感しました。VBEでも背景色や文字色…
Surface Pro3のタイプカバーにはプリントスクリーンキーが無いため、 「Win」+「Fn」+「Space」キーを同時押しする。タイプカバー無しの場合は、 本体の「Win」+「ボリューム‐」ボタンを同時押しする。余談ですが、私がブログ用の画像を作成する場合は以…
今更な感じの基本的なテクニックだが、ほかの言語を触るとすぐに忘れてしまうので記事にしておく。 Dim MaxRow As Long MaxRow = Cells(Rows.Count, 1).End(xlUp).Row "Rows.Count"はsheetの最終行 xlsxなら1048576、xlsファイルなら65536.Endプロパティは …
Pythonでプログラムを書く際、今まで標準のIDE(統合開発環境)で作成していましたが、変数の確認とか効率が悪かったため、他のIDE導入を決意。"Atom"とか"Visual Studio Code"とかPythonに対応した有名どころが色々ある中、"Anaconda"に含まれている"Spyder"…
csvモジュールのreader関数で読み込みます。読み込んだデータをfor文で1行ずつ出力しています。
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する際は、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ステートメントでファイルをコピーする関数。コピー先の同名ファイルが存在する場合は上書きされる。
アカウントを取得したまま、ブラウザ画面のとっつきにくさから放置していたGitHub。最近ブログにソースを貼り付けるため、Gist(断片コードの管理)を使用し始めましたが、もっと本格的に使用するべく「SourceTree」というソフトをインストール。ダウンロード…
きっかけはAmazonが勧めてきたPythonの書籍。普段VBAやPowerShellで処理していることも簡単にできそうだったので、これを機に覚えてみます。ダウンロードはこちらから www.python.org インストール時に環境変数PATH設定を忘れずに。
Dictionaryオブジェクトで連想配列を作成。重複データを登録できない特性を生かして重複データが存在しないかチェックする。
配列を引数として渡し、全角の文字を半角に変換して返す関数。カタカナが入っているようなデータは要注意。
SHCreateDirectoryExというAPIを使用して存在しないフォルダでも1回の処理で作成する。
配列をテキストファイルへ1行ずつ出力するサブプロシージャ使用例 Sub Main() Dim tmp(2) As String tmp(0) = "one" tmp(1) = "two" tmp(2) = "three" Call OutputText(tmp) End Sub
ログファイルを出力するサブプロシージャ 処理日時+引数の"category"で処理種別+"msg"で処理内容を出力する。 使用例 Sub Main() Dim folderPath As String folderPath = ThisWorkbook.Path Dim i As Long For i = 1 To 5 Call M_Logging.WriteLog(folderP…
シート名を配列に格納する関数 使用例 Sub main() Dim WB as Workbook Set WB = ActiveWorkBook Dim mySheetName As Variant mySheetName = CheckSheetName(WB) End Sub
ブックを作成するにはAddメソッドを使用する。 WorkBooks.Add 使用例 Sub Main() Dim WB As WorkBook Set WB = WorkBooks.Add WB.SaveAs "C:\bin\新しいブック.xlsx" End Sub
ブックを保存するにはSaveメソッドを使用する。 ActiveWorkBook.Save 他にも、以下のような書き方ができる。 SaveAs 名前を付けて保存 SaveCopyAs コピーを保存 使用例 Sub Main() ActiveWorkbook.SaveAs Filename:="c:\bin\名前を付けて保存.xlsm" ActiveWo…
ブックを閉じるにはCloseメソッドを使用します。 Workbooks("ブック名.xlsx").Close また、引数により保存して閉じる、保存しないで閉じる、名前を付けて保存を選択することができます。 引数 定数 内容 SaveChanges True ブックの変更を保存して閉じます。 …
変数や関数の名前を特にルールを設けずコーディングしていたので今のうちに整理しておきたい。また、今後追加があればこの記事に追記していく。命名規則・Sub、Function→Pascal形式(大文字始まり。単語と単語のつなぎ目は大文字) ・動詞、名詞の順で繋げて命…
配列データを多次元配列に変換するための関数。多次元配列は途中で列数を増やすことができないため、事前に設定された列数より取り込む要素が多い場合は処理を終了するようにした。 使用例 Sub Main() Dim lineTxt As Variant lineTxt = ImportTxt("C:\bin\t…