2019-01-01から1年間の記事一覧

オートフィルタで、Google検索みたいに、複数条件を部分一致でまとめて一括検索する。

1 機能 オートフィルタで、複数条件を部分一致でまとめて検索したい。たしかに、オートフィルタには検索窓があるが、OR検索できない。 なお、フィルタオプションを使えば、予め抽出条件を検索対象の表の外に入力してOR検索できる。 allabout.co.jp www.euru…

空白行を削除するマクロ

1 特定の列だけで空白判定を行い、空白セルの行を削除 Sub DeleteEmptyRowInColumnA() 'A列で空白行判定して削除 Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 2 特定列だけではなく、1行全体で空白判定を行い、完全に空白な行…

シート上のリストで指定したシート以外を削除する

1 シートを追加する操作を含むマクロを実行した後、追加したシートを削除してシート数を初期化する場合に、デフォルトで存在したシート(削除対象外)のリストを「保存シート」という名前のシートに書いてユーザーが管理できるようにする方法。 ポイントは…

転記元シートAから転記先シートBへ該当項目を転記する手法の考察

(記載中) 1 目的 マクロで行う作業の典型的なものとして、シートAに大きな表(転記元となるデータベース)があって、シートBの帳票(請求書などの様式)にループ処理しながら項目を転記する作業がある。この転記項目が多いケース、転記元の列が今後改定され…

特別講義コンサルタントの整理術(三谷宏治)

分ける減らす早めにやる。慣れる。↓アレンジ(分ける減らす触る。慣れる。)(分ける減らす早める。慣れる。)1 分ける悩み状態にいることを認識する。価値を生まないものに悩まない。こだわりレベル、決め方を決める。2減らす減らす振るやらない。減らす→安…

エクセルVBAリンク集

永井善王先生のサイト www.max.hi-ho.ne.jp Excel VBA 入門講座へようこそ!! excelvba.pc-users.net サイトマップ | Excel作業をVBAで効率化 複数の開発言語を使っていますが、仕事の際に一番重宝しているのはExcelVBAです。 …いろんな開発プロジェクトに携…

入力欄がない「神PDF」様式の届出書申請書へAdobeReaderとExcelだけで入力フォームを作成

(起案中) 1 目的 神エクセルは一般化したが、「神PDF」というのもある。ここでいう「神PDF」とは、官公庁で要求される届出書や申請書のうち、PDFフォームフィールドがが設けられていないPDF(AdobeAcrobatなどのソフトがなければ、いわばただの図)で提供…

エクセルシート上に入力フォームを作るときのショートカットキー

VBEでの入力フォームではなく、Excelシート上に入力フォームを作るとデザインしやすい。エクセルシート上に入力フォームを作るときに使えるショートカットキーをまとめる。 1 図形やテキストボックスを配置した後のグループ化の際に、「オブジェクトの選択…

エクセルシート印刷時に、控も同時印刷するマクロ

1 機能 Excelで作成したあるシートについて、正本だけでなく控えも必要な場合がある。控には控と分かるように表示したい。マクロなしで対応する方法もある。 (1)2部印刷して1部を控とする方法。控にする方に、「控」と書くか「控」のスタンプを押す。…

図形を枠線(グリッド)に合わせるマクロ

1 内容 挿入した図形の上下左右を自動的に最も近い枠線に合わせる形で大きさを調整する。つまり、図形の端を枠線に合わせる。 2 動機 業務フロー図、手順書をExcelで作る際、図形を枠線に合わせるのが面倒。 3 元ネタ gpsoft.dip.jp 本職の方なのでスマー…

ショートカットキーの演習

ショートカットキーのステキな記事を読んだ。 cpa-program.com グラフ以外は使いそう。 セルに色を塗るショートカット「ALT+H+H+矢印+Enter」 (さらに追加すると、Alt、H、H、M、Tab、矢印、Enter ) セルに罫線を引くショートカット「ALT+H+B+A」 グ…

複数のCSVデータファイルを複数シートに一括取込み

1 ファイル構成など thisworkbookと同じ階層に、「処理対象」フォルダを作成しておく。取り込みたいCSVをすべて「処理対象」フォルダに格納。フォルダ内には余分なファイルは入れないこと。thisworkbookには「ファイル名一覧表」というシートを作成しておく…

画像貼付マクロ、エビデンス貼付けマクロ

あるフォルダに画像ファイルのみを入れる。 マクロ実行前に、貼付を始めるセルを選択しておく。 画像貼付シートの構成は、A列は数字列。B列に貼付けていく。C列は説明列。 1行目は見出し、2行目~11行目結合セル、12~21行目結合セル、22~31行目結合セル、…

既存の別ブックを開く

1 元コード ExcelマクロVBAセミナー初級編 | Excelセミナー・研修のすごい改善 Sub ブックを開く() Application.ScreenUpdating = False Dim fileName As String fileName = Dir(ThisWorkbook.path & "\請求書*") Workbooks.Open ThisWorkbook.path & "\" &…

CSVをテキストファイルウィザードで取り込んだときのマクロ記録の編集

Excel2016ではもはやレガシイ機能とテキスして表示させないと使えなくなったテキストファイルウィザードによる外部データの取り込み。 引数がたくさんあるので自分で書くのは面倒だが、マクロ記録すると余分な引数まで保存される。2列のCSVをテキストファイ…

saveasとworkbook.close savechanges:=False の競合

一度ハマったのでメモ。 上記の操作を、Thisworkbookに一定の操作を加えた後、コピーをxlsx形式で保存して、Thisworkbookは上書き保存しないで閉じることを目的としたところ、失敗した。 つまり、先に実行したSaveAsが勝ち、後から実行したSaveChanges:=Fals…

thisworkbook(xlsm)でデータ取り込み後、xlsx保存

目的 マクロ実行ブックはxlsm。データ取り込み後、コピーをxlsxで保存したい。 IPO(入力、処理、出力)の入力と出力をVBAでやるだけで、処理は極力Excelの計算でやればメンテナンスも簡単でしょうというExcel自動化の肝をまとめた素晴らしい記事。 -----以下…

非表示シートがあるときの複数シート一括処理

結論 コレクション作ってループsub CommandToSheets()Dim mySheetsNames as CollectionSet mySheetsNames = New Collection‘まとめて扱うシート名をコレクションに追加With mySheetsNames .Add “Sheet5” .Add “sheet6”End withDim mySheetName as Object ‘オ…

For~Nextのイテレータ(カウンター変数)を使用前に初期化するべきか

1結論 初期化不要。変数宣言した後、直接For文を書き始めてよい。 2テスト内容 Sub test1() Dim i As Longi = 100Debug.Print "iの値:" & i For i = 1 To 10 Debug.Print "iの値:" & iNext i End Sub イミディエイトウインドウの結果 iの値:100iの値:1…

OutlookVBAで、メール本文中のハイパーリンクを取り出したい。

(起案中) ハイパーリンクの取り出し方 1 Excelにハイパーリンクをまとめる 2 テキストにハイパーリンクをまとめる。 3 本文中のハイパーリンクについてすべてショートカットを作る。 Outlookのハイパーリンクオブジェクトが見つからない。 Outlookはハイ…

リーダブル・マイコーディングルール

テキスト excelVBAを実務で使い倒す技術 リーダブルコード CODECOMPLETE上 1 方針 誤解が少ない書き方を優先。 理解しやすい書き方を優先。 書き手の便宜より読み手を優先。 大差なければ、従来からの一貫性ある書き方(自分の書き方)を徹底。 細かいルー…

セル範囲指定エラー range, cells

実際にエラーになるとなかなか気づかないやつ。 複数シートにまたがるrange("左上セル","右下セル")としたときのオブジェクト定義エラー。 実際に"左上セル"と”右下セル”に書くとき、シートの指定を省略したことにより誤ってactivesheetを指定していることが…

vlookupエラー

まさかのvlookup。挙動がおかしい。ネットで調べて、エラー原因を探してもどれも違う。列内で違う表示形式があったりしたら悪さするのか?など時間を浪費。表が巨大でなかなか気づかなかったが、検索キーがユニークではなかった。こんなミスもある。

クリップボードのbmpデータをダブルクリックで貼り付けて操作マニュアルお手軽作成

'■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■'■'■ クリップボードのbmpデータをダブルクリックしたセルに、セルサイズに合わせて貼 ’■ り付けるイベントマクロ'■ 操作マニュアルを作るときにプリントスクリーンした画面ショットを次々に貼って ’■いく…

月でソートする

日付ごとに予定が一件別にに記載されているExcel。それを月でソートして切り出す。sub 月でオートフィルタ() dim mFilter mFilter=array(xlJanuary,xlFebururay,.......) End sub

外部参照(リンク)の更新エラー

1 原因 セル(ctr+F) 名前(ctr+F3) 条件付き書式 入力規則のリスト オブジェクト(ctr+G) 2 解消方法 セル内に記述された外部リンクは「リンク解除」で値に置換できる。他方、「リンク解除」しても、値に置換できずエラー出続けてしまうものがある。 maz…

フォルダ内のファイル名一覧取得

'■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ '■フォルダ構成:thiswoorkbook(実行ブック)と同じ階層に処理対象フォルダ '■パブリック変数を使いたくないので、直接「ファイル名一覧」シートに書き出す。 '■最後のFSO開放はループ重…

ExcelVBAの学習本、サイト

・たった1秒で仕事が片付くExcel自動化の教科書(吉田拳) 実務で繰り返し作業に時間を取られていることに気づいてVBAに興味を持ったら、最優先で買う一冊。 ・ExcelVBAを実務で使い倒す技術(高橋宣成) 実際に書き始めると悩みが出てくるのでそれに答えて…

ExcelVBAの単語、用語

1 単語 オブジェクト:操作対象 メソッド :操作 プロパティ :情報 2 条件分岐の使い分け IF~Then…:2つの場合分け Select Case (True):3つ以上の場合分け 3 ループ(繰り返し)の基準 For~Next:回数 Do~Loop :条件 For Each~Next:あるコレクシ…

excel2016 ある月の第n水曜日を求める(第x回目の●曜日)

方針 1 求める月を決める(2020年2月) 2 月初を基準日とする(2020年2月1日) 3 第0水曜日を求める(2020年1月29日) 4 第n水曜日を求める(2020年1月29日+n×7) 5 第n水曜日が休日だったら、翌営業日(前営業日)にする 計算 2 date関数を使…