VBA
今回は、可視セルのみを取得するSpecialCells(xlCellTypeVisible)メソッド使用時のバグと、バクの回避方法について考えてみたいと思います。 VBA界では有名?なのかどうか分かりませんが、非表示の行または列がシート内に1以上ある状態で、単一セル対してSpe…
今回はオートフィルタで絞り込んでから印刷する、という作業を自動化してみたいと思います。こんなイメージ。 この表の商品の列で、 "ポーション"で絞り込み 印刷 "金の針"で絞り込み 印刷 "フェニックスの尾"で絞り込み 印刷 "エリクサー"で絞り込み 印刷 …
今回は指定文字列の左側または右側を切り出すコードを考えてみたいと思います。例えば、氏名から、スペースを境にして姓と名を切り出したい・・・・・・。とか。ただ、そんなのは既に世の中にある気がするので、そこから半歩進んだ処理も考えてみたいと思います。 …
エクセルを使用していると、行の高さや列の幅をコピーして他の行・列に適用したいときがあります。そんなときはどうすればいいでしょうか? 目次 形式を選択して貼り付けする方法 高さや幅を確認してから、他の行・列に設定する方法 マクロで適用する方法 形…
前回は複数の文字の色でしたが、今回は複数のセルの色でフィルタリングしてみましょう。内容は一部、前回と重複しますのでご了承ください。 kouten0430.hatenablog.com エクセルのオートフィルターはセルの色でフィルターをかけることができますが、色は一つ…
エクセルのオートフィルターは文字の色でフィルターをかけることができますが、色は一つしか指定できません。また、複数のセルを選んで右クリックし、「フィルター」→「選択したセルのフォント色でフィルター」をしようとしても、複数の選択範囲に対しては実…
今回は隣接するセルのデータが同じであれば、セル結合する。というコードを作ってみたいと思います。 しかし、 「セル結合はなるべく避けるべし」 「すぐにセル結合したがる民は滅んでほしい」 「最初からこの機能が無ければよかった」 と、いうような声もよ…
今回は文字列の途中(もしくは先頭や末尾)に存在する数字に、指定値を加減算させてみたいと思います。んで、ついでに指定値でインクリメント・デクリメントなんかもさせたい。処理のイメージはこんなの。 欲を言えば、全角数字でも処理できるようにしたい。…
今回は、エクセルのシート上にセルの背景色を使ってビットマップ画像を描画してみようと思います。手作業で1セルずつちまちまと・・・・・・ではなくVBAで、です。何故、それをやろうと思ったのかは自分でも謎です。 では、やってみましょう! ビットマップファイ…
今回はVBAを使って、エクセルに入力された文字列のうち、カタカナ(または数字・英字・記号)のみを全角(または半角)にしてみようと思います。これがどんな時に役立つかというと・・・・・・、カタカナや英字や数字や記号のみを半角全角にしたい時です(*`・ω・)…
先日、新しいPCを購入したので旧PCからExcel.officeUIと個人用マクロブックを移植しました。が、それに関連して発生したエラーについて原因と対処法をメモしておきます。 その前に、officeUIとはリボンやクイックアクセスツールバーのユーザー設定が記録…
今回は以下の記事の続きです。 kouten0430.hatenablog.com Option Compare Textを宣言して文字列比較を行った場合、文字コードが同じもの以外にどんな文字列が類縁の文字としてマッチするのか・・・・・・。前回は比較サンプルが少なく不十分だったので、今回は文…
注:今回のお話は VBA にそっくりそのまま適用できるかわかりません。一般的なお話として読んでいただければ嬉しいです。 前回、メモリ内部を「オブジェクト」とだけ表現しました。せっかくなのでメモリ内部をもう少し拡大して観察したいと思います。 メモリ…
クラスを実体化することの比喩として、「たい焼きの型」と「たい焼き」の話がしばしば用いられます。しかしこの比喩で「なるほど!そうだったのか」と一発で理解できる人は何人いるのでしょうか?回り道をし、色々な角度から考えを巡らせて理解に至った人が…
「VBAで、閉じたままのブックからデータを転記する方法は無いかにゃー」と思っている人のために、今回は ExecuteExcel4Macro メソッドを紹介します。 ExecuteExcel4Macro? それは何かの最先端技術ですか? いえ、違います。 新しいバージョンの Excel で、 …
VBAでは文字列データの比較方法を以下の Option Compare ステートメントで宣言することができます。 Option Compare Binary(又は省略) 各文字列の文字コード数値が比較されます。 Option Compare Text システムのロケールによって決定され、語彙的意味に基…
VBA ではRegExpクラスを利用すれば正規表現を使用することができます。が、そこまでしなくとも Like演算子を使って正規表現のようなパターンマッチングをすることもできます。 覚えることが少ないので初心者にはオススメですし、組み合わせ次第ではそれなり…
今回は Word の Range についてです。 名前が同じで用途も似ていますが、Excelの Range とはプログラム上まったくの別物です。 Range の引数はクイックヒントに表示されるように Start:開始文字位置End:終了文字位置 で指定します。 下のサンプルで実際に…
久しぶりにコードを書くと、Rangeの引数で:(コロン)を使えば良いのか,(カンマ)を使えば良いのか迷ってしまう時があります(@_@;)なので、自分の脳内整理を試みようと思います。 Rangeの引数は Range(引数1,引数2) のように2つまで指定することができま…
前回は段落の両端に対しての処理でしたが、今回は段落の内側にアプローチしてみたいと思います。ということで、左からの文字数指定で各段落の内側を置換するマクロを作ってみました。 前回と同じように任意の範囲を選択します。仮に左から5文字目を置換開始…
文書の各段落の先頭や末尾に文字をまとめて追加したい場面ってありませんか?「俺(私)にそんな場面はないっ!」って方には、ここから下の記事は無用の長物です。他の場所に GoTo して下さい。 ということで、今回は選択範囲内にある各段落(の先頭または末…
今回は Word で開いているすべての文書の同じ行(厳密にいうと段落※)にクリップボードのデータを貼り付けさせてみたいと思います。 イメージとしてはこんな感じ。 マクロ実行時にアクティブな文書(最前面にある文書)のカーソル位置を読み取り、すべての文…
タイトルの通り、今回は Word の文書で非連続な位置にクリップボードのデータを貼り付けるということをやってみようと思います。 と、いっても非連続な位置に対してどうやってマクロで処理するのか・・・・・・。少し考えた結果、以下のようにやってみることにしま…
今回は Word で VBEを起動する方法 標準モジュールにコードを記述する方法 マクロを実行する方法 を順番に説明したいと思います。この辺は Excel とほとんど同じなので安心して下さい。 Word のデフォルトでは VBE を起動するためのボタンが非表示になってい…
非表示セルや結合セルを含んだ範囲を普通にコピーし、他のセルへ値貼り付けしたら・・・・・・。 下のように、値が飛び飛びになってしまいます。 これを、マクロで飛び飛びにならないようにしてみましょう。 コードはこちらです。 Sub Tab改行区切りでクリップボー…
エクセルで「列がAAAで行が30000のセルを、表示して下さい」と言われたら、何秒以内に表示できるでしょうか?私がやってみたところ・・・・・・A1セルを表示した状態から、通常のスクロールのみで1分以上かかりました。時間がかかることと、動く数字やアルファベッ…
今回は、フレームについてです。社内システムでは未だに使われていたりするので、いちおう書いときましょう。 フレームとは? 複数個に分割した画面に、それぞれ別のページを表示する機能です。下の例では、3つのHTMLファイルが用意されます。 ・構成.html(…
今回は、変数に取得したDOMや要素が、ページ移動後、どんな挙動になるか調べてみます。ページを移動した後、DOMツリー構造が変わるので、再取得する必要があるだろう・・・・・・と予想できます。が、実際はどうなのか、書籍やネットから腑に落ちる情報を見…
VBAでIEを操作している途中、ポップアップや通知バーが出てきたらどうすればいいでしょうか?今回は、その辺に焦点をあててみたいと思います。 ポップアップや通知バーが出たら、選択肢を選んで次へ進んだり、ファイルを保存したりする・・・・・・これをオブジェ…
今回はIEの操作を行った後に発生する処理および読み込みを待って、次の操作を行うといったことに焦点を当てて話を進めていきたいと思います。前回も書きましたが、読み込み完了を待たずに次の操作を行っても空振りする場合があるので、何らかの形で処理を待…