雑記

【IT系】今まで会社でしか技術知識を使ってこなかったエンジニアの皆さん、テックブログを始めませんか

早速ですが、「今まで会社でしか技術知識を使ってこなかったです」という方、いませんか。この記事を見ている方々にも「自分のことだ」っていう人がいるかもしれません。しかしながら、「あなたの技術情報は世界が求めている」と言っても過言ではありません。すごくもったいない。今回はテックブログを書いていない方々向けに、記事を書こうと思います。なぜテックブログを始めるのかあなたの技術情報は貴重な情報である「あなたの技術情報は世界が求めている」、これは間違いありません。技術者A私は〇〇しかやってこなかったから・・・技術者B私は長年IT業界にいるけど、技術者らしいことやっていない・・・気にする必要はありません!あなたの技術、需要があります!例えばこのようなことありませんか?Excelを使っていて計算結果が合わず困った。そこで「関数の使い方」を検索するそうすると分かりやすい記事を見つかった、あるいは見つからなかった案外みんな初歩的なことで困っています。あなたが手を動かして解決した方法、あるいは解決できなかった方法の情報は誰かの役に立ちます。非技術者から見れば、あなたから後光が見えています。読む側の人間も千差万...
VBA

Excelのセルの末尾の余分な改行をまとめて削除するVBAのサンプルコード

Excelのセルの末尾の余分な改行をまとめて削除するVBAのサンプルコードを紹介します。仕様下記のシートのA列のように文末に余分に改行があるとします。※B列に補足を入れていますこれを以下のシートのように、余分な改行を削除するVBAを考えました。文章の途中の改行は残しつつ、文末の改行だけを消すのです。ソースコードソースコードは以下のとおりです。Option ExplicitSub deleteLineBreak() Dim i As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Dim CellValue As String CellValue = Worksheets("Sheet1").Cells(i, 1).value '文字数回繰り返す Dim j As Long For j = 1 To Len(CellValue) '最後の文字が改行コードの場合 If Right(CellValue, 1) = vbLf Or Right(CellValue, 1) = vbCr Then '最後の文字以外を格納 CellValue...
PowerShell

Excelの各セルのフォント名(フォントファミリー)を変更するPowerShellのサンプルコード

Excelの各セルのフォント名(フォントファミリー)を変更するPowerShellのサンプルコードを紹介します。仕様ローカルの任意の場所にPowerShellの*.ps1ファイルと、Excelファイルを格納します。「Book1.xlsx」のA列のセルのフォント名を変更してみます。後でPowerShellの実行前後を比較するため、B列にもA列の内容をコピーしておきます。PowerShell実行前のフォント名は游ゴシックです。これを以下のような別のフォント名に変更させます。セル位置実行前実行後A1游ゴシックMS PゴシックA2游ゴシックMS ゴシックA3游ゴシックMS 明朝A4游ゴシックメイリオA5游ゴシック游ゴシックソースコード以下のコマンドとps1ファイルを準備しておきます。コマンドpowershell -ExecutionPolicy RemoteSigned -File "setExcelFontName.ps1"setExcelFontName.ps1$excel = New-Object -ComObject Excel.Application$book = $null$exc...
VBA

郵便番号一覧から住所を求めていくREST APIを使ったVBAのサンプルコード(zipcloud版)

郵便番号一覧から住所を求めていく、REST APIを使ったVBAのサンプルコードを公開してみます。使用するWebAPIExcel単体で住所情報検索はできないので、下記「郵便番号検索API」の力を借ります。サービス名郵便番号検索API運営株式会社アイビスURL概要郵便番号検索APIは、日本郵便が公開している郵便番号データを検索する機能をRESTで提供しています。仕様画面仕様表のA列に住所を求めたい「郵便番号」の一覧を入力しています。表の右に住所出力の実行ボタンが配置されています。実行ボタンを押下すると、B列とC列に「住所」と「住所(カナ)」が出力されます。ソースコードSub ボタン1_Click() Dim objXMLHttp As Object, zipArr Dim yubinNo As String Dim splitLine() As String Dim i As Long i = 2 '行番号 Do While Cells(i, 1).value <> "" '入力値からハイフンの削除 yubinNo = Replace(Worksheets("Sheet1").Cells...
Excel

Excelで比較は=(イコール記号)よりexact関数を使う癖をつけたほうがいいよという記事

Excelで比較は=(イコール)よりExact関数を使う癖をつけたほうがいいよという記事ですExcelに慣れている人にとっては当たり前だと言われそうなんですけど、いまだにやる人がいるので。現象:exact関数を使わないと何が起こるのか「百聞は1件に如かず」ということで、何が起こるかまず紹介します。以下のように値1と値2を比較して、E列とF列に出力するExcelシートを考えます。E列は=(equal)で比較します。F列はexact関数で比較します。想定はD列の通りになるはずです。シートの内容の比較とかでよくやる比較ですね。こうしてみるとイコール記号のほうが見やすいですね。しかし関数の実行結果は以下の通り、exact関数のほうが正確です。何でこんなことが起こるの?Excelで=(equal記号)を使用した場合は、大文字小文字を厳密に比較しないためです。絶対に数値しか扱わないよというケース以外は、exact関数を使ったほうが無難です。exact関数とイコールの比較簡単に一覧化してみました。文字列1と文字列2は、全半角、大文字小文字以外は同じとします。文字列1文字列2=(equal記号)exa...
PowerShell

Excelのシートの並び順を逆順にするPowerShellのサンプルコード

Excelのシートの並び順を逆順にするPowerShellのサンプルコードを作ってみました。仕様ローカルの任意の場所にps1ファイルと、Excelファイルを格納します。Book1.xlsxを開くと、左から以下の順でシートが用意されています。Sheet1Sheet3Sheet5Sheet2Sheet4Sheet6PowerShellを実行すると、以下のように元の順と逆順に入れ分かるようにします。Sheet6Sheet4Sheet2Sheet5Sheet3Sheet1※あくまで逆順であって、ソートじゃないことに注意ソースコードpowershell本体と、PowerShellを実行するためのコマンドです。コマンドpowershell -ExecutionPolicy RemoteSigned -File "ReserveSheet.ps1"ReserveSheet.ps1$excel = New-Object -ComObject Excel.Application$book = $null$excel.Visible = $false$excel.DisplayAlerts = $fals...
PowerShell

VBAからPowerShellのコマンドを実行するサンプルコード(戻り値を取得するパターン)

VBAからPowerShellのコマンドを実行するサンプルコードを2パターン作成してみました。この記事ではそのうちの戻り値を取得するパターンを紹介します。準備事前準備として、VBAからPowerShellコマンドを実行するには以下の設定が必要です。ツールバーから「参照設定」を選択「Windows Script Host Object Model」のライブラリファイルにチェックを入れます。仕様VBAからPowerShellコマンドを呼び出します。PowerShellのコマンドはなんでもよいのですが、「Get-Date」にして結果をVBAのMsgBox関数で表示してみます。見出し念のため補足しますが、実現している処理自体はVBAからPowerShellを経由する必要性はありません。マクロからPowerShellを実行する方法をテストするためにやっています。ソースコードWScript.ShellのExecメソッドにより、powershellのコマンドを実行しています。execPowerShell.xlsmOption ExplicitFunction execPowerShell(psCmd...
PowerShell

VBAからPowerShellのコマンドを実行するサンプルコード(戻り値を取得しないパターン)

VBAからPowerShellのコマンドを実行するサンプルコードを2パターン作成してみました。この記事ではそのうちの戻り値が不要で取得しないパターンを紹介します。準備事前準備として、VBAからPowerShellコマンドを実行するには以下の設定が必要です。ツールバーから「参照設定」を選択「Windows Script Host Object Model」のライブラリファイルにチェックを入れます。仕様VBAからPowerShellコマンドを呼び出します。テストで実行するPowerShellのコマンドはなんでもよいのですが、ここでは「Rename-Item」にしてみましょう。マクロファイル(xlsm)と同じディレクトリにファイル「File1.txt」を置き、マクロからPowerShell経由でファイル名を変更してみます。マクロを実行したらファイル名が、「File1.txt」から「File2.txt」になります。見出し念のため補足しますが、実現している処理自体はVBAからPowerShellを経由する必要性はありません。マクロからPowerShellを実行する方法をテストするためにやっていま...
PowerShell

Wordの古い「97-2003文書(.doc)」を新しい「Word文書(.docx)」の形式にまとめて変換するPowerShellのサンプルコード

Wordの古い「97-2003文書(.doc)」を新しい「Word文書(.docx)」の形式にまとめて変換するPowerShellのサンプルコードを紹介してみようと思います。doc形式?と思われるかもしれませんが、まだまだ古い文書を保有している企業は多いと思いますので、使いどころはあると思います。仕様以下のようにwordの古いファイル形式「*.doc」ファイルが同じディレクトリに格納されているとします。これらを「transWordFiles.bat」バッチをダブルクリックするだけで、新しいWordの形式に変換するという仕様です。※もちろん拡張子だけ変えるとかいうこざかしいことはしません。今回の場合はとりあえず例としてWordファイルを5ファイル用意しました。が、たぶん数百ファイルぐらいは大丈夫なんじゃないかと思います。ソースコードバッチ処理はPowerShellを呼び出すだけです。ポリシーの関係で一回バッチから実行していますが、PCの設定を変更して直接PowerShellの処理を実行しても良いかと思います。transWordFiles.batpowershell -ExecutionP...
PowerShell

PowerShellで関数の引数の記述例と実行結果の一覧

以前記事にも書いたのですが、PowerShellの関数の仮引数は丸括弧を使用しません。PowerShellは他の言語と関数への仮引数の記述が違うので、記述例を一覧化して残してみようかと思います。引数の記述例引数なし~引数2つまでのいろいろなパターンを実行結果含めてみました。引数なし引数なしのパターンです。ソースコードfunction doFunction(){ Write-Host "zero"}#引数なしdoFunctionRead-Host実行結果引数1つ引数が1つのパターンです。ソースコードfunction doFunction($a){ Write-Host $a}# 引数 1つdoFunction 1Read-Host実行結果引数2つ(数字と数字)引数が2つのパターンです。ソースコードfunction doFunction($a,$b){ $result = $a * $b Write-Host $result}# 引数 2つdoFunction 2 3Read-Host実行結果引数2つ(数字と文字列)違う型の引数が2つあるパターンです。ソースコードそのまま内容表示でも良いの...