プログラミング
今回は Word で VBEを起動する方法 標準モジュールにコードを記述する方法 マクロを実行する方法 を順番に説明したいと思います。この辺は Excel とほとんど同じなので安心して下さい。 Word のデフォルトでは VBE を起動するためのボタンが非表示になってい…
非表示セルや結合セルを含んだ範囲を普通にコピーし、他のセルへ値貼り付けしたら・・・・・・。 下のように、値が飛び飛びになってしまいます。 これを、マクロで飛び飛びにならないようにしてみましょう。 コードはこちらです。 Sub Tab改行区切りでクリップボー…
エクセルで「列がAAAで行が30000のセルを、表示して下さい」と言われたら、何秒以内に表示できるでしょうか?私がやってみたところ・・・・・・A1セルを表示した状態から、通常のスクロールのみで1分以上かかりました。時間がかかることと、動く数字やアルファベッ…
今回は、フレームについてです。社内システムでは未だに使われていたりするので、いちおう書いときましょう。 フレームとは? 複数個に分割した画面に、それぞれ別のページを表示する機能です。下の例では、3つのHTMLファイルが用意されます。 ・構成.html(…
今回は、変数に取得したDOMや要素が、ページ移動後、どんな挙動になるか調べてみます。ページを移動した後、DOMツリー構造が変わるので、再取得する必要があるだろう・・・・・・と予想できます。が、実際はどうなのか、書籍やネットから腑に落ちる情報を見…
VBAでIEを操作している途中、ポップアップや通知バーが出てきたらどうすればいいでしょうか?今回は、その辺に焦点をあててみたいと思います。 ポップアップや通知バーが出たら、選択肢を選んで次へ進んだり、ファイルを保存したりする・・・・・・これをオブジェ…
今回はIEの操作を行った後に発生する処理および読み込みを待って、次の操作を行うといったことに焦点を当てて話を進めていきたいと思います。前回も書きましたが、読み込み完了を待たずに次の操作を行っても空振りする場合があるので、何らかの形で処理を待…
今回は、VBAから、テキストボックスに文字列を入力したり、セレクトボックスの項目を選択したり、チェックボックス・ラジオボタンをON・OFFしたり、リンクやボタンをクリックしたりしてみたいと思います。 前回、要素の取得方法について説明したので、今回は…
今回は、取得したIEからDOMを取得し、さらにそれぞれの要素を取得したいと思います。 DOMって何? という声が聞こえたり、聞こえなかったり・・・・・・。 えーっと、私もあんまり詳しいわけじゃないですが、JavaScriptの書籍などから得た知識によると・・・・・・Docume…
前回は、IEを起動させると同時にIEをオブジェクトとして取得しました。しかし、CreateObjectで起動したIEは何も表示していないIEです。Webページを表示するには、下記のように navigate メソッドでURLを指定します。 ie.navigate "URLをここに記載" ではでは…
IE(Internet Explorer)の後継としてEdgeが登場していますが、IEもまだまだ現役なハズ。私は個人で Chrome を主に使っていますが、会社では IE を使っています(使わされています)。 なので、IEを使った社内システムにおいて、入力作業などを半自動化、あ…
エクセルの標準ボタンには「横方向に結合」がありますが、「縦方向に結合」はありません。どうしてないのかわかりませんが、個人的にその機能が欲しいので、VBAで作ってみます。 ググればありそうだけど、簡単そうなので、自分でやってみます。 Sub 縦方…
今回は、日付データを一括で文字列に変換する簡単なマクロを作ったので紹介します。 まず、日付データを文字列として扱いたいのはどんな場合か? について、軽く触れておきたいと思います。 このように、A列に日付データ、B列にコメントがあったとして これ…
今回は、プルダウンメニューから選んだ文字列と同じ文字列を含む、同一シート内のセルにジャンプする(画面の一番上に表示させる)イベントプロシージャを紹介します。 プルダウンメニューから文字列を選ぶ度に、同じ文字列を含むセルを このように一番上に…
VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 今回は、ループ処理を使わなければならない場合に、ループの中に含まれる処理を極力軽くする方法について、模索してみようと思います。 下のように、1~9の数値がラン…
VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 今回は、VBAで、ユーザーが指定した数の行を挿入する方法についてです。 まず、下のように、For ~Next を使って、指定した数の行を挿入させてみようと思います。アク…
VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 今回は、VBAで、セルにデータが有るか無いか(または特定のデータが有るか無いか、でもいい)を調べて、そのデータ数をカウントする方法についてです。 まず、下のよ…
VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 今回は、InputBoxでキャンセルを押された場合の判定についてです。 InputBoxでキャンセルを押されたときに、何らかの処理(例えばプロシージャを終了するとか)をさせ…
VBAの勉強を始めて、これまでに学んだことや、思いついたアレやコレをメモっておきます。 タイトルのとおりですが、コーディングしていると、入れ子になったループの中から一気に抜け出したい場面があります。しかし、下記のように、一番内側のループの中で …
VBAの勉強を始めて、これまでに習得したことや、思いついたアレやコレをメモっておきます。 結論から言うと、あらかじめ用意されているプロパティやメソッドなどで、可視セル範囲のみをうまいこと二次元配列に格納することはできないようです。(あくまでも…
VBAの勉強を始めてみて、これまでに気づいたことや、習得したこまごました知識などをメモっておこうと思います。 下の画像のように、A1:C3を結合したセルがあります。 見た目は一つのセルのようですが、実際には9個のセル(A1,B1,C1,A2,B2,C2,A3,B3,C3)が含…
通常、エクセルで下図のようなデータ範囲をコピーし、メモ帳などに貼り付けるとこんな感じになると思います。 これは、Tabによってフィールドごとに区切られた状態でコピーされるからであり、逆に言えば、これを再度エクセルに貼り付けることも可能な訳です…
今回はエクセルのリストを使用して、Windowsの新規フォルダを大量に作成してみようと思います。新規フォルダの作成には、MkDirステートメントを使用します。 MkDir Path:=新しく作成するフォルダ名 MkDirステートメントは引数に指定された文字列をフォルダ名…
VLOOKUP関数的に、いわゆる「表引き」でファイル名のリネームを行うファイルリネームソフト(もどき)を作ってみました。 目次 概要 プログラムの流れ コード本体 引数なしのDir関数の振る舞い お好みで機能を変更する 概要 例えばこのように、とある商品の…
エクセルを使って仕事をしていると、一つのブックにシートが多くなりすぎて、目的のシートを探すのに手間取ってしまうことがあります。自分で作った資料ならまだしも、余所から頂いた資料であればなおさらです。1秒を争うような場面で、目的のシートが中々…
今回のコードは前回作ったコードの出がらしリサイクルです。前回は複数ブックのデータを一つのブックのシートにまとめるというものでしたが、今回は複数ブックという部分が、複数シートに変わっただけです。 前回の記事を投稿して、1日経って、冷静になって…
今回は、マクロを使い始めた人がまず最初にやってみそうなことを、やってみようかと思います。 やりたいことは単純に下記のようなこと。 a.xlsx、b.xlsx、c.xlsx、d.xlsx、・・・・・・z.xlsxのように行数が不定な複数ブックがあり、 これらのデータを、a.xlsxのデ…
選択範囲内で、該当する文字が入っているセルのみを選択する簡単なマクロです。セルを選択させたのち、セルの背景色を変えるまでをマクロにしてみようと思ったんですが、ふと思い直し、選択するのみにとどめてみました。 ためしに、選択範囲内で3の入ってい…
(前回の続き) もともと人の脳なんて不確実なものであり、それに加えて私は資質が足りない・・・・・・ので、徹底的にそれを補う方法を模索しなければなりません。(卑屈に聞こえてしまうかもしれないけれど、実際にそうなのでしょーがない) 私は、時々刻々と変…
VBA生命科学研究所 所員の好天です(*v.v)プログラミングを生業としていない者の視点から、プログラミングの魅力などについて、稚拙ながら語ってみたいと思います。私が感じている、プログラミングの魅力をいくつか書き出してみます。 意図通りに動いたとき、…