この演習では、Webサイトからデータを読み取る方法、この場合はYahoo.comからの最新の為替レートを示します。
リーダーには開発者リボンが表示されており、VBAエディターに精通していることを前提としています。 そうでない場合は、Googleの「Excel開発者タブ」または「Excelコードウィンドウ」をご覧ください。
前提条件には、コンボボックスへの入力と名前の定義に関する知識が含まれます。.
ワークブックはXNUMX枚のシートで構成されています。
ユーザーインターフェイス:
購入と販売のコンボボックスは、以下のローカルデータシートを参照します。
D11のテーブルは、ユーザーのフォーマットを保持したまま、Webサイト自体から自動貼り付けされます。
この演習のxlsmはダウンロードできます こちら.
自分でアプリケーションを構築する。
XNUMXつのコンボボックスでシートを作成します。 コンボボックスは、XNUMX番目のシートのセルを参照します。
コンボボックスは、を使用してWebサイトを読み取るためのコードも呼び出します。 前日比 イベント。
通貨名は、以下のリストのXNUMX番目のシート(「通貨」)に貼り付けることができます。並べ替え順序は個人的な好みの問題です。
| ZAR |
| USD |
| EUR |
| GBP |
| CHF |
| AUD |
| NZD |
| JPY |
| CAD |
| SEK |
| DKK |
| NOK |
| MUR |
| HKD |
| SGD |
| ILS |
| AED |
| INR |
| CNY |
データを列BとEに貼り付けます。
図のように、名前を定義し、インデックス関数を使用します。
名前はローカルデータシート「Currencies」で定義されているため、シート「Main」は定義された名前を参照するだけで値を取得できます。つまり、「Main」セルE10とG10の場合はそれぞれ= SELLと= BUYです。
Webを読むためにExcelをプログラミングします。 ただし、データリボンには独自の組み込みプロセスがあり、そのインスタンスをさまざまなシナリオを構築する際にマクロとして記録することができます。 コンピューターまたはブラウザーの構成は、Webページのスクリプトに悪影響を与える可能性があることに注意してください。
コード
モジュールを挿入し、次のように入力します。
Option Explicit
Sub Ticker()
Dim currBuy As String
Dim currSell As String
Range("D11:F14").ClearContents 'prepare the ground for the web data
currBuy = Range("BUY") 'get variable values from Defined Names previously set up
currSell = Range("SELL")
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$11"))
.Name = "q?s=" & currSell & currBuy & "=X"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = """table1"""
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End sub
Sub DropDown2_Change() 'This event will call the routine above. Object name might differ.
Call Ticker
End Sub
Sub DropDown1_Change()
Call Ticker
End Sub
ブックをタイプxlsmとして保存します.
コンボボックスの値を変更してコードをテストしてから、貼り付けたテーブルの形式をスマートにします(小数点以下XNUMX桁、グリッド線、シェーディング?)。
Excelファイルの破損
Excelは、保存時にファイルを破損することが知られており、その後、独自の自己回復ルーチンを試行しますが、私の経験では、これは単に機能しないことがよくあります。 破棄されるのはソースファイル(おそらく唯一のコピー)であるため、これはユーザーにとって悲惨な結果になる可能性があります。 破損したExcelファイル ただし、サードパーティのツールを使用して修復できるため、時間と労力を大幅に節約できます。
著者紹介:
フェリックスフッカーは、のデータ復旧の専門家です DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 修理 rar アーカイブ およびSQL回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com
