適材適所

WindowsやPowerShellやネットワーク、IBMなどのシステム系の話やポイ活など気になったことも載せているブログです。

VBA

【Excel】Split的なことをやるユーザー定義関数【VBA】

何の話? Excelのユーザー定義関数を作成した 簡単な使い方の例 1番目の要素を抜き出す 2番目の要素を抜き出す 注意点 終わりに ワークシート上でテキストを分割したい。 ワークシート関数でやれないことはないけど何か直観的じゃない。 そう思ったのでちょ…

VBAでftp.exeを簡単に使うサンプル【Shell関数】

VBAからftpを簡単に扱うサンプル Shell関数 Shell関数を省略せずに書くと Shell関数の注意点 処理の同期を取りたいときはWscript.ShellのRunメソッドが簡単 終わりに Windowsに標準装備されているftp.exeがVBAから使えると便利ですよね。 Windows PCだけでは…

【Excel VBA】"ファイル名"の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?の原因の1つは入力規則

なんでExcelすぐ死んでしまうん? 検証した環境 VBAによってExcelが破壊される 【今回行きついた結論】Excel VBAのValidation.Addのバグが原因 正常に動くコード Excelが壊れるコード なんで? 遭遇する可能性がある例 終わりに 検証した環境 Windows10 Exce…

VBAのSendKeys,System.Windows.FormsのSendWaitなどが反応しないときに読む記事

注意 プロローグ Windowsでキーボードが押されたとき何が起こるの? メッセージって何? メッセージのログを可視化することができるSpy++ Spy++でメッセージログを可視化してみる VBAのSendKeysやSystem.Windows.Forms#SendWaitのメッセージ 【結論】PostMes…

【Excel VBA】色が付いているセル・色が付いていないセルを選択する

検証した環境 色の付いたセルを判別するVBAコード 色の付いたセルだけを選択するVBAのコード 終わりに セルの色を変えたいのだけれども、既にセルに色が付いているところはそのままにしておきたい!! セルの色が付いていないセルだけ、選択してセルの色を変…

【VBA】Notesカレンダーを取得する簡単なサンプル【繰り返し予定対応バージョン】

検証した環境 Notesカレンダーから繰り返し予定もちゃんと取得できるVBAのコード 終わりに 以前、HCL (旧Lotus、IBM)Notesカレンダーから予定を取得するサンプルを紹介しましたが、繰り返し予定がうまく取得できない!!というコメントを頂いておりました。…

【VBA】For~Next文の抜け方 3選【Exit For、Goto +1】

VBA

Exit Forステートメント 基本的な例 For文がネストされている(複数のFor文の)場合 GoToステートメント 悪魔のGoTo? ネストされていても関係ない 変数をいじる 注意点 終わりに プログラミングには必須の処理である繰り返し。 繰り返しの処理の中で特定の条…

【ExportAsFixedFormat】PDFで出力する方法を解説【Excel VBA】

ExportAsFixedFormatメソッド 補足 終わりに 今では当たり前になっているPDF。テレワークが増えて電子帳票の重要性が増している現在、PDF無しでパソコン仕事はできません。 Excel VBAでもPDFへの出力機能が標準で備わっています。 PDFとは「Portable Documen…

【Excel VBA】シートをコピーする方法の解説と要望

WorksheetのCopyメソッド 戻り値はない 終わりに たまにVBA触ると忘れているので備忘録に残しておきます。 Excel VBAで頻出のシートコピーについてです。 WorksheetのCopyメソッド WorksheetのCopyメソッドを使用することでシートをコピーできます。 Copyメ…

【VBA】フォルダ内のファイル一覧を作成する

コードの説明 コード 終わりに Excelに特定のフォルダ内のファイル名の一覧を作成したい!! フォルダの中がちらかってしまったので一度整理したいが、現状どうなっているんだ?リスト化しなくては。 というわけで、そんな時に役に立つVBAのコードの紹介です…

Personal CommunicationsをVBAで操作してAS400の作業をプチRPAする

IBM謹製のPersonal Communicationsのマクロ機能 VBAからPCOMMを操作してデータを入力する 前提条件 コード 各種オブジェクトの関係図 ほかにも色々できるよ!! 終わりに プチRPA!?な記事 AS400改め、IBMiは登場以来、いぶし銀の活躍を見せるオフコンで、 そ…

【VBA】テキストファイルの先頭に書き込む

VBA

テキストファイルの先頭に書き込みを行うコード 注意点 文字コード 終わりに FileSystemObjectを使う他の記事 VBAでテキストファイルに書き込むときに追記は簡単ですが、先頭に書き込むのは意外と面倒だったりします。 先日、基幹システムからデータを取り出…

【Excel VBA】名前の定義を削除する【幽霊定義】

VBAで名前の定義を削除する 幽霊定義 Namesオブジェクトの補足 終わりに Excelの機能の1つに名前の定義というものがあります。 セル範囲に名前を付けることで、その名前でそのセル範囲を呼び出せるというものです。 うまく使えば便利なんですが、人からもら…

【Excel VBA】フォルダ内のExcelシートを1つのブックにまとめる

支店ごとにExcelが提出されてきて、そのシートを1つのブックにまとめる作業が毎月ある・・・ なんてときや、月ごとにブックが分かれている1年分を1つのブックにまとめたい・・・ こんなの手作業でやってられっかーー!!と思っているそこのあなた。 簡単…

【Excel VBA】シートを並び替える

コード どんな動きをするコードか 実用性は? 終わりに 関連がありそうな記事 Excelを使っていると、いつの間にか大量のシートが・・・。なんてことありませんか? え?ちゃんと管理しているから大丈夫? そ、そうですか。 じゃ、じゃあ、他の人が作って、し…

【Excel VBA】セルの色を変えるのとフォントの色を変えるのはどっちが大変なのか

環境 大変な仕事の定義 検証用コード セルサイズ:デフォルト セルサイズ縦横200ピクセル セルサイズ縦横5ピクセル フォント文字無し フォント文字1個 フォント文字100個 フォント文字サイズ36 フォント文字サイズ5 まとめ 終わりに VBA検証系の関連記事 Exce…

Excelでブックに問題が発生してしまうのはなぜか【原因はわかりません】

破損したものを修復すると どうして問題が発生してしまうのか⇒わからない PCに処理を渡さないことが原因? 終わりに Excelで作業していると、たまに「Excelに問題が見つかりました」という表示が出て、正常に開けなくなることがあります。 長く引き継がれて…

Excel VBAでセル内の数字だけを抽出する

Excel業務あるある GETNUMBER自作関数 例 コード 終わりに Excel業務あるある なぜかセルの中に数字と一緒に単位がはいっている・・・。 セルの中から数字項目だけを取り出したい。 そんな経験ありませんか? 今回のExcel業務あるあるは、「セルの内の数字だ…

Excel VBAでフォルダを作成する

フォルダを作成するという苦行 Excel VBAを使ってフォルダを作成する 事前準備 コード 終わりに 年度の始めに、月数分のフォルダを作成したり、日報用のフォルダを作成したり、手作業でやるの面倒じゃないですか? そんな仕事あるある、VBAに任せましょう。 …

Excel VBAで差し込み印刷を実現する

ExcelとVBAを使った差し込み印刷のやり方 その2です。 こちらの記事では、差し込む先のテンプレートはシート内に1つだけでした。 Wordの差し込み印刷と同じような感覚で使えるようにするためには、1つのテンプレートに複数のレコードを差し込める必要があ…

VBAの「行継続文字(_)を使いすぎています」について

行継文字とは 基本的にはあきらめましょう 固定文字の場合はテキストファイルやシートなど外部に保存する手も 基本的には継行文字は最小限にしましょう 終わりに VBAでプログラミングをしていたら、こんなエラーが。 行継続文字(_)を使いすぎています。 行の…

Excel VBAでExcelシートを個別のブックに分割して保存する

Excel業務あるあるシリーズ。 複数のシートを独立したExcelファイルに分割して保存したい!! ちまちまコピーして保存して・・・と手作業でやるのは効率が悪い!! ということで今回は、Excelで、シートごとに別ブックに分割して保存するVBAの処理について紹…

Excel VBAで名前を指定してシートを大量に新規作成する

テンプレート的なシートをコピーして沢山作らなくてはいけない・・・。 手作業でやってたら日が暮れる・・・。 あぁ、せっかく作ったのに、間違えてる・・・。 最初から作り直しだ・・・。 こんなの人がやる作業じゃねえええええ!!! その作業、1秒で終わ…

マイナンバーのチェックデジットをVBAで計算してみよう

VBAでマイナンバーを紐解いてしまいます

VBAでNotesのタスク一覧を取得する簡単なサンプル

おいおい、今時Notesって・・・ なんて思っても、なかなか抜け出せないのがNotes。 しぶとく生き残っています。 今回はそんなNotesの、機能の一つ、「タスク」をVBAを使って取得してみたいと思います。 VBA×Notesシリーズ 環境 Notesのタスクとは? VBAでNot…

VLOOKUP関数とINDEX&MATCH関数の熱き戦い

Excelを使ってていて、VLOOKUP関数に1度もお世話になったことない人などいるだろうか。 VLOOKUP関数こそ、最強のワークシート関数だと思っていた時期が俺にもありました。 しかし、万能だと思っていたVLOOKUP関数が使えない、そんなときがあるのです。 そし…

Excel VBAでシートの一覧を作成しハイパーリンクを作成して目次を作る

Excel業務あるあるシリーズ Excelの仕様 シートの一覧を作成する ハイパーリンクを作成する 目次ページを追加するコード 目次だけだと・・・ 終わりに Excelで作業をしていたら、いつの間にか大量のシートが・・・。 他の人からもらったExcelなんだけど、シ…

VBAでNotesの特定のフォルダのメールを参照する

VBAを使って、Notesを操作するシリーズです。 今回は、特定のフォルダに格納されているメールを参照するサンプルを紹介したいと思います。 VBAでNotesを操作するシリーズ コード全体 コードの解説 終わりに VBAでNotesを操作するシリーズ VBAでNoteメールの…

ADODB.Streamでゴミデータ(Null文字)がある場合の挙動について

VBAでテキストデータをexcelに取り込むとき そもそもADODB.Streamって? ADODB.Stream#ReadLineでNull文字が含まれるファイルを扱うと Null文字がテキストファイルの途中にあるReadText(adReadLine)の挙動 用意したソース 用意したファイル Nullがはいってい…

VBAのRange.SpecialCellsメソッドについて

特定のセルを取得したい 何はなくともオブジェクトブラウザー 第一引数 第二引数 プログラムのスピードアップ対策に!!・・・なるか? 該当のセルが見つからない場合はエラーを返す これは「条件を選択してジャンプ」機能です 終わりに 特定のセルを取得し…