カテゴリー「Excel」の22件の記事

【Excel備忘ログ】 2014/10/22 Excel2000が終了できない

Excel2000を終了しようとしても閉じなくなってしまう現象が出ました。
OSはWindows7 Home Premiumなのでサポート外なのですが。

C:\Program Files (x86)\Microsoft Office\Officeにあるexcel.pipをOldexcel.pipにして再起動しても直らず。

Excel.xlbをOldExcel.xlbにして再起動しても直らず。
ところが、ExcelをWindowsXP SP3互換モードにしたところ、直りましたヽ(=´▽`=)ノ
管理者として実行」にもチェックを付けてあります。
スタートメニューなどにあるExcelアイコンを右クリックして「プロパティ」-「互換性タブ」へ
「互換モードでこのプログラムを実行する」にチェックを付けて、Windows XP (Service Pack 3)を選択します。
※Excelへのショートカットアイコンだと、互換性タブはありませんのでお気をつけください。

【Excel VBA備忘ログ】 2010/2/25 Twitterへ投稿するには

Excel2000のVBA+IE6を使って、twitterへツイートしてみました。

(手抜きのため、IEで予めログインしておきます)

1.ページを表示し
    objIE.navigate ("http://twitter.com/")

2.コメント欄へ投稿内容をセットし
    objIE.document.all.tags("textarea").Item.value = "ここに書き込む内容を挿入"
  (140文字のチェックを行うべきですね。全角1文字も1文字としてカウントされます)

3.投稿するボタンを押す
    objIE.document.getElementById("update-submit").Click

それぞれの間にウェイトを入れないとダメなようです。

【Excel VBA備忘ログ】 2010/1/17 ExcelVBAでXMLを取得するには

Excel VBAを使って、WebサービスなどからXMLファイルを取得する方法です。以下はMyMiniCityという、アクセスに応じて街が発展するというWebサービスでの使用例(Excel 2000で確認)。

例えば、私のMyMiciCityはhttp://hipu-city.myminicity.com/というURLになりますが、末尾に「xml/」を付けると、現在の街のパラメータがXMLファイルとして取得出来ます(http://hipu-city.myminicity.com/xml/)

取得出来るXMLファイルの中身はこんな具合になってます。

<?xml version="1.0" encoding="UTF-8" ?>
<city>
 <host>hipu-city.myminicity.com</host>
 <name>hipu-city</name>
 <region code="JP">japan</region>
 <ranking>1033</ranking>
 <population>994</population>
 <incomes>224350</incomes>
 <unemployment>4</unemployment>
 <transport>96</transport>
 <criminality>2</criminality>
 <pollution>0</pollution>
 <nextnuke>1</nextnuke>
 <signatures>0</signatures>
 <bases com="0" env="100" ind="301" sec="168" tra="170"/>
</city>


XMLパーサとしてMSXMLを使用するため、その準備としてVisualBasicEditorメニューの「ツール」-「参照設定」-「Microsoft XML, vX.X」にチェックを入れておきます。

VBAで読み込む場合のコード例です。

Sub GetXMLCode()

    Dim XMLDocument As MSXML2.DOMDocument
    Dim xmlRootNode1 As IXMLDOMNode
    Dim xmlRootNode2 As IXMLDOMNode
    Dim xmlURL As String
   
    'MSXMLオブジェクトの生成
    Set XMLDocument = New MSXML2.DOMDocument
    '同期読み出しモード "async"はasyncronous(非同期)※
    XMLDocument.async = False
    xmlURL = "http://hipu-city.myminicity.com/xml"

    Set xmlRootNode1 = XMLDocument.childNodes.Item(0)
    Set xmlRootNode2 = XMLDocument.childNodes.Item(1)
    Debug.Print "-- xmlRootNode1"
    Debug.Print xmlRootNode1.xml
    Debug.Print xmlRootNode1.text
    Debug.Print "-- xmlRootNode2"
    Debug.Print xmlRootNode2.xml
    Debug.Print xmlRootNode2.text
    Debug.Print "-- xmlRootNode2.childNodes"
    Debug.Print xmlRootNode2.childNodes(0).xml
    Debug.Print xmlRootNode2.childNodes(0).Text
    Debug.Print xmlRootNode2.childNodes(1).xml
    Debug.Print xmlRootNode2.childNodes(1).Text
    Debug.Print xmlRootNode2.childNodes(2).xml
    Debug.Print xmlRootNode2.childNodes(2).Text
    Debug.Print xmlRootNode2.childNodes(3).xml
    Debug.Print xmlRootNode2.childNodes(3).Text
  ・
  ・

    If Not XMLDocument Is Nothing Then Set XMLDocument = Nothing
    If Not xmlRootNode1 Is Nothing Then Set xmlRootNode1 = Nothing
    If Not xmlRootNode2 Is Nothing Then Set xmlRootNode2 = Nothing
End Sub


Debug.Printしてみると以下の通り取得できてます。


-- xmlRootNode1
<?xml version="1.0"?>
version="1.0" encoding="UTF-8"
-- xmlRootNode2
<city>
    <host>hipu-city.myminicity.com</host>
    <name>hipu-city</name>
    <region code="JP">japan</region>
    <ranking>1033</ranking>
    <population>994</population>
    <incomes>224350</incomes>
    <unemployment>4</unemployment>
    <transport>96</transport>
    <criminality>2</criminality>
    <pollution>0</pollution>
    <nextnuke>1</nextnuke>
    <signatures>0</signatures>
    <bases com="0" env="100" ind="301" sec="168" tra="170"/>
</city>
hipu-city.myminicity.com hipu-city japan 1033 994 224350 4 96 2 0 1 0
-- xmlRootNode2.childNodes
<host>hipu-city.myminicity.com</host>
hipu-city.myminicity.com
<name>hipu-city</name>
hipu-city
<region code="JP">japan</region>
japan
<ranking>1033</ranking>
1033



※非同期読み出しを行うと読み出しが完了した時点でコールバックにて通知されようになるため、読み込みに時間が掛かったりした時にアプリケーションが固まる事が無くなります。

【Excel VBA備忘ログ】2009/8/25 ココログめ~

ココログがしょっちゅうログインを求めてくるようになったので

その対策で自動ログインしてみる。

①変数宣言

 objIE As Object

 tags As String

②ログイン後に表示されるべきURLを指定してobjIEを生成しておく

 ex. objIE.navigate ("https://app.f.cocolog-nifty.com/t/app/weblog/post?blog_id=xxxxx")

③ソースからTRタグのみ抽出しておく

④抽出した全TRタグから"@niftyユーザー名/ID"文字列を探す(例ではtagsにコピー)

 ex.  If InStr(1, tags, "@niftyユーザー名/ID", vbTextCompare) <> 0 Then

⑤見つかった場合は以下を実行

 objIE.document.forms(0).Item("username").value = "ユーザーID"
 objIE.document.forms(0).Item("password").value = "パスワード"
 objIE.document.forms(0).Item("remember").Checked = True
 objIE.document.forms(0).Item("loginbtn").Click

にほんブログ村 株ブログ 株日記へ にほんブログ村 株ブログへ にほんブログ村 小遣いブログへ

★★何でも見つかる!Yahoo!ショッピング★★

【Excel VBA備忘ログ】2009/2/28 ブログ村へトラックバックを送る

自動投稿プログラム「とーこちゃん」で使用中のブログ村へトラックバックを

送る方法をちょっと修正。

準備:トラコミュのトラックバッグ画面URLは予め用意(トラックバックするボタンが並んでいる画面)

1.トラックバック画面を開く

 objIE.navigate (URL)

2.TRタグの中から「直接トラックバックする」と書かれた箇所を検索

 bufはString型、zとfind_posはInteger型

 z = 0 : find_pos = -1

 For Each objA In objIE.document.Body.all.tags("TR")
   buf = Mid(objA.outerHTML, 1, 1024)
   If InStr(1, buf, "直接トラックバックする", vbTextCompare) <> 0 Then
     If InStr(1, objA.innerText, Worksheets("メイン").Cells(1, "A"), vbTextCompare) <> 0 Then
       find_pos = z
     Else
       Exit For
     End If
     z = z + 1
   End If
 Next

2.トラックバックボタンを押す

 最初に見つかったボタン(最も直近の日付)だけを押す。

 If z > 0 And find_pos <> -1 Then
   If z = 1 Then
     objIE.document.all.button1(6).Click
   Else
     objIE.document.all.button1(find_pos).Click

   End If
End If

URLをリスト化しておき、Navigateに順次渡せば複数のトラコミュへ

一度にトラックバックを送信できる(但し、送れるトラコミュは1日に10個まで)

にほんブログ村 株ブログ 株日記へ にほんブログ村 株ブログへ にほんブログ村 小遣いブログへ

★★何でも見つかる!Yahoo!ショッピング★★

【Excel VBA備忘ログ】2009.OpenOffice.org BASICとVBAとの互換性

OpenOffice.org BASICとMicrosoftのVBAとの互換性

についてPUKIWIKIにまとめがあったのでココに貼っておきます。

MS-Officeを持っておられない方で、これから表計算ソフト上で

マクロを組んでみたいと思った方はOpenOfficeで実現可能か

調べてみては、と思います。OpenOffice、なんてったってタダですもんw

2009/02/09

 

にほんブログ村 株ブログ 株日記へ にほんブログ村 株ブログへ にほんブログ村 小遣いブログへ

★★何でも見つかる!Yahoo!ショッピング★★

【Excel VBA備忘ログ】WebBrowserを貼ったシートからの切替でエラー

WebBrowserコントロールを貼ったワークシートから別のワークシートへ

切り換えるとExcelが異常終了する場合(私の環境はExcel2000SP1)、

VBデザインモードに切り換えてからシートを切り換えるか、ブランクページを

表示しておく(WebBrowser1.navigate ("about:blank") )とエラーを回避できる。

にほんブログ村 株ブログ 株日記へ にほんブログ村 株ブログへ にほんブログ村 小遣いブログへ

★★何でも見つかる!Yahoo!ショッピング★★

【Excel VBA備忘ログ】 Webクエリを使ってテーブルを簡単に読み込む

Excelを使って特定のWebページから決まったテーブルをVBAなど使わずとも簡単に抜き出す方法。(Excel2000の場合)

1.読み出したデータの貼り付け位置を指定

  ワークシート上の読み込みたい位置を選んでおく。そこが左上になるようにデータが読み込まれる。

2.抜き出し実行1

  メニューの「データ」-「外部データの取り込み」-「新しいWebクエリ」を選択

3.抜き出し実行2

  「必要なデータがあるWebページのアドレス・・」にURLあるいはhtmlファイルパスを入力する。ファイル名まで入れる。

4.抜き出す部分の選択

  対象ページのどの部分を読み出すか選択する。

  ・ページ全体・・文字通り全部読み込む
  ・表のみ・・tableを全て読み込む
  ・選択した表・・指定したtableのみ読み込む。複数のtableを含むページの場合
      先頭から1,2・・と複数指定するか、TABLEタグにidオプションがあればその名前を指定する。

5.抜き出し方の指定

  保存するWebページの形式を指定する。見た目が変化するが、実際は文字や背景の色が変わる程度でマスの境界など再現されない。

  ・なし・・取り込むデータはプレーンテキスト
  ・リッチテキスト形式のみ・・文字修飾のみ反映される
  ・HTML形式・・文字修飾に加えてハイパーリンクなども反映される

  作成したクエリはExcelファイルと共に保存されるが、単独でクエリのみ保存する事も可能。

6.Webページのデータ変更をExcelに反映させるには

  データを更新したい場合は、読み込んだデータ上のどこかでマウス右クリックして、「データの更新」を選択する。

【Excel VBA備忘ログ】IEの表示完了を・・待てな~い!

どうも決定打を欠くIE表示待ち。
調査は一旦置いといて、実効性があり、いずれ必要になるエラー処理を。
innerTextの一部を取得してhtml読み込みをチェックする為の関数。
だが、読み込みが完了していないとpage.document.all(1)で発生する
実行時エラー'438'などをOn Error Gotoステートメントでトラップする。

Function search_string(page As Object, str As String)
    Dim buf As String

    On Error GoTo error1

    buf = page.document.all(1).innerHTML
    If InStr(1, buf, str, vbTextCompare) <> 0 Then
        search_string = True
        Exit Function
    End If
   
    search_string = False
    Exit Function

error1:
    Debug.Print "error"
    search_string = False

End Function

外では↓(サーバーエラーに対応する為、タイムアウト等は必要)

Do While  search_string(WebBrowser1, "○△刺客") = False
    DoEvents
Loop

にほんブログ村 株ブログ 株日記へ にほんブログ村 株ブログへ

★★何でも見つかる!Yahoo!ショッピング★★

【Excel VBA備忘ログ】WebBrowserコントロールのプロパティが適用できない

WebBrowserコントロールをExcelにぺっと貼り付けてプロパティをいじっても
変化が見られないものがある。http://support.microsoft.com/kb/192007/ja
見ると以下のものは適用できない。

AddressBar
FullScreen
MenuBar
Resizble
StatusBar
StatusText
TheaterMode
ツールバー

以下のメソッドも効果がない。

ClientToWindow
ShowBrowserBar
GetProperty
PutProperty
終了します。

また、以下のイベントは発生しない。

OnQuit
OnFullScreen
OnMenuBar
OnTheaterMode
OnStatusBar
OnToolBar
PropertyChange


にほんブログ村 株ブログ 株日記へ にほんブログ村 株ブログへ

★★何でも見つかる!Yahoo!ショッピング★★

その他のカテゴリー

amazon

マイリスト

  • 暮らしをおトクにかえていく|ポイントインカム
  • 暮らしをおトクにかえていく|ポイントインカム
  • フルーツメール
無料ブログはココログ