(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

Windows-Excel

【ExcelVBA】Word.Applicationを用いてファイル全体の形態素分割を行う

やりたいこと 特定ファイルの全てのセルを対象に形態素毎に分離を行い、結果を別のシートに格納する。 環境情報 Microsoft Visual Basic for Applications 7.1 やり方 Word文書の新規文書を用意した上で Set wd = CreateObject("Word.Application") Set doc …

【ExcelVBA】文字列の長さでソートを行う

やりたいこと 文字列の長さで列の値をソートする。 例としては 123 あい abcdを abcd 123 あいに並び替える。 環境情報 Microsoft Visual Basic for Applications 7.1 やり方 並べ替えを列の最終行を取得した上で(1列目とする) lastRowNum = wb.Sheets(1).…

【ExcelVBA】列に選択式の入力規則を追加する

やりたいこと 特定の列に対し、プルダウンリスト(ドロップダウンリスト)をVBAにて設定する。 環境情報 Microsoft Visual Basic for Applications 7.1 やり方 選択式にしたいセル範囲をRangeで用意した上で以下のように記載することで With Range(hoge).Val…

【ExcelVBA】結合されたセルの左上と右下のアドレスを取得する

やりたいこと 以下のように結合されたセルがB2:C2とE2:E4に存在する場合に A B C D E 1 あ い う え お 2 かきく けこそと 3 さ し す せ 4 た ち つ て それらのセルのアドレス情報をVBAにて取得したい。 環境情報 Microsoft Visual Basic for Applications…

【ExcelVBA】マクロで発生したエラー情報をテキストファイルに出力させる方法

はじめに VBAコードをコマンドプロンプトのバッチから読みだして利用するとエラーが発生した場合にエラー内容が確認できません。 そこで、本記事ではVBAコードに数行差し込むことでエラー発生時に時刻情報付きでエラー内容をテキストファイルに書き出す方法…

【Excel/VBA】Gmailを利用したメール送信プログラム

はじめに エクセルのVBA(マクロ)でGmailの送信機能を利用するプログラムです。 必要なのは送信元のGmailのユーザとパスワードのみでExcelのコードも単純なので容易に利用できますが、Googleアカウントのセキュリティレベルを下げた状態で動作させるので利…

【ExcelVBA】複数文字列の組み合わせを一気に置換するマクロ

はじめに エクセルでは「Ctrl+F」にて以下画面が出てくるのでFind Whatに置換元、Replace Withに置換後の文字列を入れてReplace Allボタンを押下すると一括で置換が可能です。一括置換ただ、このFindWhatとReplaceWithが複数セットである場合は手動で行うと…

【Excel】シートにあるボタンやボックスが削除できない場合の対応方法

事象 Excelのシートにあるボタンを削除すべく左クリック等で編集しようとしても編集できない。 環境 Ofiice 365 (2020年時点) 解決策 「Develop(開発)」タブの中にある「Control > Design Mode」を選択した上でオブジェクトに対して左クリックを行う。以下…

【Excel】VLOOKUP検索にて表の右側にキーがある場合の対応法

概要 VLOOKUPでは検索キーが一番左側にある前提で利用しますが、例えば以下の表のように検索キーが右側にある場合もあります。要は左側に出力したい情報が格納されている場合。 A B C 1 値段 商品名 コード 2 100 りんご abc 3 200 いちご def 4 150 みかん …

【Excel】特定の列にあるセルを触れないようにする

はじめに エクセルファイルのとあるシートの列の番号を以下のようにして自動入力するようにし、その数式部分はチームメンバーは触れないようにしたいケースがありました。 =ROWS()-3この手のニーズはあると思い、一般化して解説してみました。要は、シート内…

【Excel】列と行を転置しようとすると失敗する

発生した事象 Excelにて長い行をコピーし、転置してペーストしようとすると以下画面が表示される。エラーメッセージ You can't paste this here because the Copy area and paste area aren't the same size. Select just one cell in the paste area or an …

【Excel】特定のキーワードを含む列を削除するマクロ

はじめに Excelのシート内に以下のように不要な列が入っている場合に 列 ゴミ列 列 ゴミ列 ゴミ列 列名の箇所にて右クリックをして「Delete」すれば列は削除され左詰めされます。一方、特定のキーワードが削除したい列に存在する場合はマクロによる削除を利…

【Excel】全シートをシート毎にCSVファイルに出力するマクロ

はじめに GUI操作にて「File」→「Export」と進めば以下のようにExcelファイルをCSVファイルに変換できますが 但し書きとして以下が表示され The selected file type doesnot support workbooks that contail multiple sheets. To save only the active sheet…

【Excel】INDIRECT関数を用いて各シートから値を収集する

はじめに INDIRECT関数を用いてシート跨ぎの値を自動収集する手法について紹介します。使い方自体は以下を参照ください。 使用例 例えば以下のようなExcelファイルがあり各シートの情報をsummaryシートで整理2000シート、2001シートに以下のような値が入って…

【Excel】セルの文字列をアドレスとして評価する関数の使い方

はじめに セルに入った文字列を数式として評価する関数にINDIRECT関数があります。 INDIRECT(参照文字列, [参照形式]) という公式の使い方ではピンとこない方向けに、動き方を例題を元に理解します。 INDIRECTの使い方 INDIRECT関数は参照するセルのアドレス…

【ExcelVBA】長期間のタイムチャート描画スクリプト

はじめに 以下で条件付き書式を用いてタイムチャートを描画する方法は記載しましたが今回はExcelVBA(マクロ)で実装しました。 条件付き書式の場合はカスタマイズは難しいものの、VBAにすれば細かい制御が可能になります。(例えば長時間作業の場合は色を変え…

【Excel】エクセルシートをCSVに変換して出力する際の改行について

事象 A B C 1 a1 b1hoge c1 2 a2 b2 c2 上のようなセル構成のExcelファイルのシートをCSVファイルとして出力すると、以下のようになるため a1,"b1 hoge",c1 a2,b2,c2扱いやすくしたい。 注意点と対応策 セル内に改行が入っている場合は他の項目と異なる出方…

【日付跨ぎ対応版】Excelでタイムチャート自動描画

はじめに Excelにてタイムチャート、または、ガントチャートを描画する際には マクロ または 条件付書式 で行うのが一般的です。細かいことをしようとするとマクロの方がよいですが、更新後すぐに描画する使いやすさから条件付書式を採用するケースもありま…