- ベストアンサー
毎日潮見表をエクセルのファイルに反映させるには?
例えば1シートめが8月1日で8月31日までシートが分かれています。毎日その日の潮見表をその日のシートに反映させる方法はありますか? たとえば以下のサイトの江ノ島潮見表をエクセルのその日のシートに反映できますでしょうか? http://anglr.me/tides/124 過去分は過去のものを残したいです。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
webクエリで検索してください。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
以下は、プログラムというものに関心がない人には、「猫に小判」でしょうから、無視してください。もし、「そういうこともあるのか」と興味がわいたら、良いと思いますが。 VBAのちょっとした部分を必要な分だけを勉強すればよいのです。 ーーー (毎日・毎回の操作の自動化) エクセルのシートを開いて、ALT+F11キーを押す(+とは同時に2キーを押すことを示す) VBE画面という画面になる。 そこでメニューの挿入ー標準モジュール の操作をして、出てきた白紙の画面に下記コードをコピペする。 (下記はWEB上のコードをほとんど使っている。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1187099611 ) WEB画面のコピーのところ以外は定番のもの。 ーー以下がVBAコード Sub Sample1() Dim IE As Object Dim t As Single Dim WS As Worksheet Cells.Clear t = Timer Set IE = CreateObject("InternetExplorer.application") With IE .Visible = True .Navigate "http://anglr.me/tides/124" Do While .Busy = True DoEvents Loop Do Until .Document.Readystate = "complete" DoEvents Loop .ExecWB 17, 2, 0, 0 .ExecWB 12, 2, 0, 0 End With Set WS = Worksheets.Add With WS .Cells.Clear .Paste Range("A1") .Hyperlinks.Delete .DrawingObjects.Delete .UsedRange.EntireColumn.AutoFit With Application .CutCopyMode = False .ScreenUpdating = True End With With .Cells .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False .Rows.AutoFit .HorizontalAlignment = xlGeneral .VerticalAlignment = xlCenter End With End With IE.Quit Set IE = Nothing 'MsgBox "処理時間: " & Format((Timer - t) / 60 / 60 / 24, "h:mm:ss"), 48 ActiveSheet.Cells.Find("観測地点の位置情報").Activate MsgBox ActiveCell.Row MsgBox ActiveCell.Offset(8, 0) 'やっていることの説明は下記 End Sub ーー これでF5キーを押すと実行され、数秒でアクチブシートにWEB画面の内容(テキスト)が貼りつく。 そして、(模擬例として)「観測地点の位置情報」という文言のシート上の位置を探してくれる。 この、「観測地点の位置情報」を好みの見出し文句に(一言一句正確に)修正して、 その行の「何行目下に目指すデータがあるか」を探すためのコードの追加修正をします。 たとえば MsgBox ActiveCell.Offset(8, 0)で「住所」の8行下の「神奈川県藤沢市」が、プログラム的に得られます。 このように、ほしい1項目の取得ずつを繰り返して、取得したデータの一部を別シートなどのセルに持ってきて配置して、望みのデータ項目群を完成させます。 ーー (常識) WEBの表示データは、作成者の都合で、無断で項目の有無や表示の場所が変えられる場合があるので、上記はそういう事態になったら、多少の修正が必要です。サイトそのものが廃止されることも多い。ですから不安定ともいえる。 === (連続日・毎日の自動化) もう一つ、毎日など定刻に自動で上記操作を繰り返す仕組みのコードもWEBに載ってます。ここでは省略。 「エクセルVBA 定時に実行」などで検索すれば、記事が見つかります。
- hayasi456
- ベストアンサー率40% (2402/5878)
- Gletscher
- ベストアンサー率23% (1525/6504)
潮見表ではなくて、潮汐表ですね? そんなことしなくも、↓の潮汐表なら過去も未来も、いつでも見られますよ。 それに、MS-EXELに読み込むにも1ヶ月単位でコピーできますよ。
補足
回答ありがとうございます。非常に為になります。 1日だけを反映させるのは可能でしょうか?反映させたいのは各シートは1日づつ分かれているのでその日だけの情報の干潮、満潮の数字をタイド表のみ反映させたいです。もし良い案がありましたらよろしくお願いいたします。