自分方位研究所

日々の活動記録

Excel VBA

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ で「getElementsByTagName」

6月13日の記事で、 はてなブログのダッシュボード、記事の管理ページでの記事一覧から、1記事分を抜き出すやり方を修正しました。前回での1記事分の取り方やり方は 「getElementsByTagName("tr") 」でTRタグをつかまえたあとに、getElementsByClassName("tr-…

(Excel VBA) はてなブログ 記事一覧(出力例)

はてなブログの記事一覧ですが、 一通りコードが完成し、Excelシートに一覧表として出力することができました。実際の表は、横方向に各項目。縦方向に記事という構成で、1記事1行という構成にしています。ただ、それだと、横方向に長すぎるため、この例では…

(Excel VBA) はてなブログ記事の管理。1記事分の項目を変数として抜き出す。

1週間ほど前に作成した、Excel シートへの1記事分の出力シートから編集用URLや公開用URL等を取り出します。 -------------------------------------------------- いつものことですが、全体の処理の中から該当するプロシージャのみ切り出しており、前処理は…

(Excel VBA) タグから文字を抜き出す(Left / Mid / Right 関数を使う)

昨日は、Left / right / Replace 関数を用いて文字の抜き出しをやってみました。Replace 関数は、文字の置き換えなので、不用な文字を消去するという方法でやっていますが、もし抜き出したい文字列の中に同一文字列があったら、それらも消去してしまうので、…

(Excel VBA) タグから文字を抜き出す

タグにはさまれた文字列から必要な文字列を抜き出すコードを作成しました。 [InnerHTML]を使わずに、力技で文字列操作をしています。 Function NUKIDASItest は、任意の文字列にはさまれた特定の文字を抜き出します。 Sub 抜き出し() Dim txt As String '<td class="td-blog-author">は</td>…

(Excel VBA) コンパイルエラー: ByRef 引数の型が一致しません。

前回作成した配列変数を新たに作成したFunctionプロシージャに引き渡して処理を進めようとしたら、コンパイルエラーが発生しました。ByRef 引数の型が一致しません。と表示されています。 Functionプロシージャ側では、受け取る引数の型がString(文字列型)を…

(Excel VBA) 検索文字列をArray関数を使用して配列変数化。

昨日の続きです。1行ずつ、Excel シートに出力すると言っておりましたが、そこまで手が回らず、その前準備として、検索用の文字列をまとめるところから始めます。 検索するタグ等の文字列が決まったので、それらを配列変数に格納して、順番に検索 していきま…

はてなブログ 「記事の管理」。Excelシートに貼りつけた1記事分の情報から必要事項を抜き出す。

はてなブログ 「記事の管理」からExcelシートに昨日出力した1記事分の内容から、必要なものを抜き出します。 ======================================== '検索するもの ●編集用ページURLと記事題名 → 同一セル内から抜きだす<a class="entry-title js-search-entry-title"href="https://blog.hatena.ne.jp/hatenaID.hateblo.jp/edit?entry=12345678901234567">記事題名 </a> ●記事本文先頭 (サ…

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ の記事一覧をExcelシートに貼りつける。

はてなブログ 「記事の管理」ページから、1記事分をExcelシートに出力します。出力結果はこのとおり。 Excelシートの出力範囲をコピーして、そのまま貼りつけています。これまた見苦しく申し訳ありません。 1 <tr class="tr-hover "> 2 <td class="td-entry-title"> 3 <div class="entry-table-wrapper"> 4 <div class="checkbox-table-cell"> 5 <input name="entry" type="checkbox" value="12345678901234567"> 6 </div></div></td></tr>

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ の記事一覧。getElementsByTagNameメソッドを使って抜き出していきたいが・・・

はてなブログ 「記事の管理」ページのソースコードを調べて、どのタグを拾えば良いかがわかりましたので、次は、実際にExcel VBAを使ってコードを書いていきます。 いつものように、要点だけ記載したコードで、このままでは走らないので申し訳ありません。 D…

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ の記事一覧。記事毎の情報を取得する。

はてなブログ 「記事の管理」ページのソースコードをみていくと、一つの記事は <tr class="tr-hover "> タグから始まっていることがわかります。 ただし、この記事のフォーマット用に <tr class="tr-hover <%- entry.isPublic() ? '' : 'private' %>"></tr> という行からはじまる一連の記事差込み用のタグ群が存在するので、それをつかまないようにして</tr>…

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ の記事一覧。「次のページ」ボタンをクリック

はてなブログのダッシュボード。記事の管理について。 昨日の続きです。日付を指定して、記事一覧が表示された後、指定した期間の記事が全て表示されるように「次のページ」をクリックします。 記事の管理ページの一番下に現れる「次のページ」ボタンをクリ…

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ の「絞り込んで検索」ボタンをクリックする。

Excel VBAのIE制御で、はてなブログの記事の管理画面 >「記事の管理」ページを制御します。 前回までに「絞り込み検索」ボタンをクリックして、投稿日を入力したので、今回は、「絞り込んで検索」ボタンをクリックしてみます。 下の、赤線で囲んだボタンをク…

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ の「絞り込み検索」で、投稿日を設定する。

Excel VBAのIE制御で、はてなブログの記事の管理画面 >「記事の管理」ページを制御します。 はてなブログの記事の管理画面から「記事の管理」ページを表示して、「絞り込み検索」ボタンをクリックして表示される、投稿日のテキストボックスに検索対象となる…

(Excel VBAでのIE制御) はてなブログ 「記事の管理」ページ で、「絞り込み検索」ボタンを押す。

はてなブログの記事の管理画面から、記事一覧表を作成する一環としてやっていくことをひとつずつ見ていきます。今回は、「絞り込み検索」ボタンをクリックして、「カテゴリー/投稿者/投稿日」の入力ボックスを表示させます。 実際に入力するのは、「投稿日…

起動済みのWEBページ(IE)をつかまえる。

記事が前後してしまいますが、起動済みのIEページをつかまえるマクロを作成しました。以前投稿した記事にやり方はすでに書いていますが、今後作成していくマクロ群として組み込めるよう、プロシージャを分けて、パーツ化するようにしています。 起動済みのIE…

VBAでの「debug.print」の内容を外部テキストファイルへ出力(少し変更)

昨日投稿しました "「debug.print」の内容を外部テキストファイルへ出力 " について、出力ファイル名に関する処理に少し手を加えました。 ファイル名に禁止文字が含まれていた場合、ファイル名全体を全角化して新ファイル名として出力するようになっていまし…

VBAでのマクロ実行中、VBEのイミディエイトウィンドゥに出力する「debug.print」の内容を外部テキストファイルへ出力。

Excelのマクロ コードに「debug.print」 コマンドを入れておくと、マクロ実行中の変数の内容や、処理の途中経過を、VBE(Visual Basic Editor)のイミディエイトウィンドゥへ出力してくれます。 とても便利なのですが、出力文字数が大きすぎると最初に表示され…

Excel VBA「ユーザー定義関数」の作成 (シート名の存在確認)

特定のシートを参照したいとき、いきなり、そのシートを名指しで参照しても存在しなければエラーになりますので、事前に確認しようというわけです。指定したシートが存在するか確認するユーザ定義関数 FNC_SheetCheck を作成しました。引数としてワークブッ…

Excel VBA 「ユーザー定義関数」の作成 (はい/いいえ メッセージボックス)

10年以上前に作成した株価ダウンロードツール。ながらくほったらかしで、走らせても結果出力先のフォルダが無くなっていたり、ダウンロード先のページが仕様変更になっていたりと 不具合続出。プロシージャの分割がいい加減で、一つの固まりが巨大すぎたり、…

Excel 起動時に常時起動するExcelファイルを用意する。(XLSTART フォルダの利用)

Excel を起動したときに常に起動してくれるExcelファイルがあると、そのファイルによく使うマクロを登録しておけば、いちいちマクロを格納したExcel ファイルを探す手間が省けて便利です。 XLSTART というフォルダにExcelファイルを置いておくと、Excel 起動…

デジタル署名の作成

Excel などのMicrosoft Office でマクロを組み込んだファイルを開くと、マクロの有効/無効を選択する必要がありますが、自分の作成したマクロ付きファイルに、自分で作成した「独自の自己署名証明書(デジタル署名)」で署名すると、それ以降、そのファイルは…

Excel での デジタル署名の無効化

PCを新しくしたりしたときなど、旧PCで作成したデジタル署名の入ったファイルを開こうとすると、マクロが有効にできないという事態に陥ることがあります。 今回、何年も前に作成したマクロ入りのExcelファイルを開こうとして、マクロが有効にできず、困って…

Excel VBA プロシージャの小型化で悩む。

以前作成したExcel VBA のプログラムに変更を加えようとしたが、何がなんだかさっぱりわからない。一つのプロシージャが大きすぎて、追っていくのが大変。 作成した当初は、とりあえず動くものを先に作成して、その後で分割していけばいいと考えておりました…

Excel VBA で敗北

WEBのページからExcel シートへの貼り付け。ざっと2時間かかる単純な繰返し作業が発生。半年に一度やることになるこの作業を、今回はExcel VBAにてIEを制御し、ページデータの抜き取りをしようとコードを書き始めたのが今週月曜日。手作業でやれば2時間なん…

Excel VBA を実務で使い倒す技術 読みました

業務で日々Excel VBAを使って色々な、お役立ちツールを作成しているのですが、チームでもExcel VBAを担当するのは自分一人なので、作成するコードも自分が読めればいい、とりあえず動けばいい的にやっつけで作成しているので、入力や出力フォーマットの変更…

ヤフーファイナンスのURL http から https に変わっていた。

ヤフーファイナンスのURLについてのお話。 昨年末あたりまで、ヤフーファイナンスのURLは http://finance.yahoo.co.jp/ だったと思うのですが いつからか httpにsが付いて https://finance.yahoo.co.jp/ に変更になっていました。 手動で http://finance.yah…

Excel VBA Thisworkbook.path

Excelを開かずにSheet1 セルE3の中身を参照するには Debug.Print ExecuteExcel4Macro("'D:\Documents_win8\ExcelTool\株式投資2014\[ID記録.xlsx]Sheet1'!R3C5") ThisWorkbook.Path の値が D:\Documents_win8\ExcelTool だったとすると Debug.Print ExecuteE…

Excel VBA オーバーフローしました

Excel VBAオーバーフローしました。 以下のコードを実行すると Sub test() Dim a As Long '(長整数型を指定) '↓いきなり ここでオーバーフローエラー。 a = 3600 * 12 '→43200 (長整数型の範囲内) End Sub 何でエラーになるか判らず、調べてみたところ3600 …