失敗談

一旦配列に格納したのちに処理したときの失敗談

例えばある列に、8桁の整数が入力されているとする。 これらは年月を表しており、年4桁+月2桁+日2桁となっている(yyyymmdd)。これをDate型に切り替えるために、以下のようなマクロを作成した。 Sub test() Dim myRng As Range Set myRng = ActiveShe…

今日は、今月の第何週目?

指定日が、指定月の第何週目かを知る必要があった。 そこで、Excel のユーザー定義関数で求めてみることにした。 今日は、2月27日。なので今日の日付を引数として、戻り値は、何週目かを表す数値にしよう。 色々な方法があると思うが、私はこう考えた。 …

テーブルのフィルターボタン(失敗談)

テーブルとして書式設定を行うと、自動でフィルターボタンが付される。 これがラベルの文字と重なって、同文字を見え難くすることがよくある。 これは、フィルターボタンのチェックを外すことで、非表示化が可能だ。 CSVから取り込んだデータをテーブルと…

ピボットテーブルのバージョンを指定しないとどうなる?(失敗談)

定期的に、ピボットテーブルをマクロで作成したくなることがある。そこで試しにマクロの記録で作ってみて、少し整理すると、このような記述になる。 Sub Test() Dim Tb As ListObject Set Tb = ActiveSheet.ListObjects(1) Dim Sh As Worksheet Sheets.Add S…

クラスモジュールに移してみる

昨日は、書類の提出状況に対応する色でセルを塗りつぶして見える化するプロシージャについて、その内容を幾つかのプロシージャに分割してみた。 infoment.hatenablog.com 今日は更に、その幾つかをクラスモジュールに委ねてみる。 まず、クラスモジュールを…

幾つかのプロシージャに分割してみる

昨日は、書類の提出状況に対応する色でセルを塗りつぶし、見える化したいという要望に応えてみた。実際はこれをテーマとし、職場で行った勉強会の内容をなぞってみた。 infoment.hatenablog.com 今日はその発展形として、まずは一つだったプロシージャを幾つ…

書類の提出状況に合わせてセルを塗りつぶす(見える化)

昨日は、指定したコードが別の表にあるかどうかを確認し、それに関連する書類の提出状況を取得してみた。 infoment.hatenablog.com 今回一連の問い合わせをくださった方は、更に、 提出状況に対応する色でセルを塗りつぶして見える化したい とのことだった。…

指定したコードが、別の表にあるかどうかを確認する。

先日は、セル内で二回改行された二段目に記された、管理番号を取り出すことに挑戦した。 infoment.hatenablog.com 取り出したいからには、取り出した後に何かしたい訳で。 前回受けた問い合わせは、さらにこう続く。 別のシートには、当該管理番号ごとに必要…

セル内で2回改行された真ん中の行だけを抜き取る

職場で、こんな質問を受けた。 セル内で2回改行された真ん中の行だけを抜き取りたいんだけど、どうすればいい? そこで、職場の勉強会でテーマにしてみた。対象は、こんな感じだ。 1行目:会社名 2行目:案件管理番号(アルファベット1文字+数字6文字…

配列の一部を抽出して、新たな配列として返すユーザー定義関数

以前、このようなものを作成して紹介した。 infoment.hatenablog.com ところが最近、これでは間に合わない事例が出てきたので、思い切ってもう一つ作ることにした。 といっても、特別なことをするわけではない。二次元配列に限定して、抜き出したい行と列の…

動きを付けて、気付いてもらう(セル内でスクロール)

何か注意書きをしても、気付く人は気づくし、気付かない人は気づかない。当たり前の話だ。しかも悪いことに、 注意書きに気づく人は、書かれているようなことを日頃から注意している。 注意書きに気づきにくい人は、どれだけ工夫を凝らしても、やっぱり気づ…

二次元配列のReDim(失敗談)

こんな二次元配列があったとする。イメージを伝えやすくするため、Excelのテーブルで表現してみる。 それで、とある理由から、上記の表1列目に相当するデータが不要になった。 そこで、このように考えた。 Redimで配列の要素数を「1~11」(図ではA~K列…

キーボードでのショートカット使用に向いている人

Excelに限らず、代表的なショートカットといえば、例えばこれ。 Ctrl + C コピー Ctrl + V 貼り付け もしショートカットが無かったら、作業性はどこまで落ちるだろう。ゾッとする。 日々、CADを用いて作図する身としては、Excelでのショートカットより…

指定フォルダ内のファイル名を、様々な順番で取得(対応策)

昨日は、様々な条件を指定して、指定した順番にファイルパスを取得する関数を作成した。そして、見事失敗。指定した何某かが重複する場合、どちらか一方しか取得できない作りにしてしまっていた(連想配列の仕様)。そこで今回は、その対応に挑戦する。 (↑C…

指定フォルダ内のファイル名を、様々な順番で取得(失敗談)

先日は、指定フォルダ内にある「一番最後に更新されたファイル」を取得してみた。 infoment.hatenablog.com ふと思った。他にも色々な順序で取得出来たら、便利かもしれない。 そこで、考えてみた。 指定したプロパティ、例えば名前やファイルサイズをkeyに…

指定フォルダ内にある、一番最後に更新されたファイルを取得

必要に迫られて、指定フォルダ内にある「一番最後に更新されたファイル」を取得することになった。さて、どうしたものか。 我が家の環境で、とりあえず実験。まず最初に、試しに適当なフォルダを選んで、FileSystemObjectでファイルパス等を取得してみた。 S…

一旦、変数に入れるべきか否か。

最近迷うのが、↓ これ。 一度しか登場しない変数は、そもそも変数にすべきか? 例えば、テーブル書式を扱う場合で、こんな風に入力している時。 Sub test() Dim r As Range For Each r In Sheets(1).ListObjects(1).DataBodyRange VBEの入力支援機能は、一切…

Elbow Connector だけ選択

当ブログを訪れた方の検索キーワードに、以下が含まれていた。 Elbow Connector だけ選択 折角なので、挑戦してみる。 まず、コネクタのエルボを、どのように指定するか調べてみる。 取り敢えず、VBEのオブジェクトブラウザで検索する。 すると、1個だけヒ…

?をまとめて置換する

昨日は、当ブログを訪れた方の検索キーワード 「vba 正規表現 ?で区切られた文字列 抽出」 を少しだけ掘り下げて、実際に正規表現で抽出するマクロを考えてみた。 infoment.hatenablog.com そこで今回は、昨日の続きを少しだけ紹介する。 (↑ Canvaで「一度…

?で区切られた文字

ふと思い立って、どのような検索で当HPが閲覧されているのか、「オーガニック検索」の結果を見てみた。するとその中に、 「vba 正規表現 ?で区切られた文字列 抽出」 という検索があったので、少しだけ掘り下げてみる。 Split関数の場合 例えば、以下のよ…

辞書(連想配列)に複数のアイテムを登録できた感じにする

職場の勉強会で、こんな質問を受けた。 辞書(連想配列)って、(一つのキーにアイテムは)一個しか 登録できないんですか? 「そうだよ」と答えた後に、ふと思った。それで、試してみた。 Sub DictTest() Dim Dict As Dictionary Set Dict = New Dictionary…

進捗を確認する ③ 残り時間を推測するクラスモジュール

昨日は、何某かの処理について進捗を確認し、さらに残り時間を推測することに挑戦した。 infoment.hatenablog.com 折角作ったので、クラスモジュールにしてみた。 クラスモジュール(ProgressClass) Option Explicit ' 開始時刻 Dim StartTime As Single ' …

Duplicateで旋回運動の続き:残像+分身(道半ば)

昨日は、円を旋回運動させるマクロにおいて、旋回角度に関わらず一周の時間が一定になるよう工夫してみた。 infoment.hatenablog.com 今日は更に、残像ではなく分身させることに挑戦する。ということで、新たな引数「PhantomNumber」を設けた。ところが、な…

Duplicateで旋回運動の続き(失敗談)

昨日は、オートシェイプを複製しながらグルグルと回して遊んでみた。 infoment.hatenablog.com そこで、さらに汎用性を持たせるために、まずクラスモジュールに移植してみた。 クラスモジュール(DuplicateShapeClass) Option Explicit Function GetRadius(…

Like演算子とメタ文字

昨日まで、配列とコレクションの実験を幾つか行ってきた。 infoment.hatenablog.com これらは、実務における以下の事例が切っ掛けだった。 サーバー上のファイル群について、そのパスを載せたExcelファイルがある。 パスは種別に細分類化されており、分類別…

ブックを開くための複数のパスワード(失敗談)

先日、このような相談を受けた。 あるExcel のブックを、複数のパスワードで管理したい。 このブックを開けるのは、特定の部門に所属する人だけ。 各自がこのブックを開く際は、自身の社員コードをパスワードとしたい。 私の理解では、Excel のパスワードは…

指定パス下にある指定ファイルの最新版を取得(失敗談)

ある業務に於いて、書類(Excel)上のファイル名(複数)が、最新版か否か確認する必要が出てきた。実際とは異なるが、雰囲気は、例えばこんな感じ。拡張子 :PDF ファイル名:部署コード(3文字)+通し番号(4桁)+更新回数(1文字)部署コードは、…

同姓のときだけ名前も表示する(失敗談)

ある名簿から、名前を取得したい。 名前は、「姓 名」で登録されている(姓と名の間に半角スペース) 取得する名前は、「姓」のみ。 同姓の人がいる場合のみ、「姓 名」を取得する。 姓 名 取得 田中 一郎 ⇒ 田中 山田 太郎 ⇒ 山田 太郎 山田 花子 ⇒ 山田 花…

テーブルのラベルで列を指定した時の失敗談

本日、とれたてホヤホヤの失敗談。最近はマクロのコードに、例えば変数などに日本語を使うことは殆どなくなった。しかしテーブルのラベルで列指定するときなどは、どうしても日本語が登場する。 ⇒ 写真の引用元例えば、↓こんな感じ。 この表は、テーブルとし…

With ステートメントで初めて知ったこと(失敗談)

今まで、Withステートメントを使う、使わないは、結果に全く影響しないと思っていた。感覚的には、この等式が成り立つのと同じぐらい、当然だと思っていた。 ところで本日、色々あってユーザーフォームにListViewコントロールを設置した。ListViewコントロー…