エクセルWEBクエリの貼り付け時の自動変換

このQ&Aのポイント
  • エクセルWEBクエリにて、データをシートに張り付ける際、データの1:1 1:2 3:2などのコロンが間にある文字列が、ユーザー定義の時間として認識して貼り付けされてしまいます。解決策は見当たりません。
  • WEBクエリ中のオプションで日付認識無効をチェックすることで、ハイフンで区切られているものは解決できますが、コロン「:」の解決策はありません。
  • 解決策が見つからず困っています。どなたかご教授いただける方はいらっしゃいますか?
回答を見る
  • ベストアンサー

エクセルWEBクエリ 貼り付け時の自動変換

WEBクエリにて、データをシートに張り付ける際、 データの1:1 1:2 3:2などのコロンが間にある文字列が、 ユーザー定義の時間として認識して貼り付けされてしまい困っております。(h:mm) (例) 1:1 1:2 3:2 → 1:01 1:02 3:02 一通り、ヘルプやVBAのヘルプなどを見ましたが、わかりませんでした。 ハイフンで区切られているものは、WEBクエリ中のオプションで日付認識無効をチェックすることで、解決出来るようですが、コロン「:」の解決策は見当たりません。m(__)m もしご存知の方がおられたら、ご教授のほどお願い申し上げます。 そのままの数字が認識できれば、どんな方法でも構いません。 下記は、参考にWEBクエリのマクロ記録そのままの状態です。 Sub Macro5() With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://www.○○○", Destination:=Range("$A$1") ) .Name = "1122" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "12" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = True .WebDisableDateRecognition = True .WebDisableRedirections = True .Refresh BackgroundQuery:=False End With End Sub

質問者が選んだベストアンサー

  • ベストアンサー
noname#206655
noname#206655
回答No.1

セルの書式が自動だと、セミコロンを時間の区切り子とするので、「文字」と指定して起きます。 その場合、マクロなど誤動作します。「文字」属性の場合、数字を扱う関数でエラーとなった記憶があります。

kenthehg
質問者

お礼

ありがとうございます。お礼が遅くなり申し訳ありません。 事前にシートの書式を文字列にしておくということでしょうか? それが、だめでしたm(__)m 通常のWEBからコピーしてエクセルに貼り付けならば、書式設定でうまくいくのですが、WEBクエリを使用すると、ダメみたいです。 VBAの中に、貼り付け設定を編集できるコードがあればよいのですが、その辺が難しく、わからないですね。 もう少し頑張ってみます。

関連するQ&A

  • Webクエリで困っています

    以下のマクロを作りました。Webクエリで、セルA1に入力してあるURLを読み込んで表を取り込み、必要なところを選択してコピーするようにしたいのです。しかし、実行すると上から3行目まで黄色になってエラーになります。特に3行目には矢印が表示されています。いろいろ調べましたが結局分かりませんでした。宜しくお願いします。 ------------------------------------------------------ Sub クエリで取得() ' ' クエリで取得 Macro ' マクロ記録日 : 2009/7/30 ユーザー名 : charlie ' ' With ActiveSheet.QueryTables.Add(Connection:= _ Range("A1").Value _ , Destination:=Range("A2")) .Name = "resultlist?tbws=x0p01a&hd=20090716&jcd=01_2" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = False .RefreshOnFileOpen = False .BackgroundQuery = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .WebSelectionType = xlEntirePage .WebFormatting = xlWebFormattingNone .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = True .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With Range("A19:Q54").Select Selection.Copy End Sub ----------------------------------------------------------

  • EXCELのwebクエリについての質問です。

    EXCELのwebクエリについての質問です。 よろしくお願いします。 webサイトにあるデータをエクセルに自動で取り込みたいのですが、 そのサイトが、データ100件毎にページを増やしていく仕様なので50ページあったら50回 も手動でデータを取りにいかないといけません。なんとかして自動にしたいのですが・・・ そのサイトはhttp://○×○×.com/page=1/のように"page="に数値を入れれば良いのでエクセルでなんとかなりそうかなと思い質問しました。 ウェブクエリ取得をマクロで記録してみました。 With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://○×○×.com/page=1", Destination _ :=Range("$A$1")) .Name = "page=1" .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 = "2" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With この中で、 1."page=1"を連番で連続取得したい。(総ページ数は人的に確認して、どこかに入力できればいいです) 2.エクセルに1つの表にしたいので:=Range("$A$1")だと上書きしていってしまのでどうにかしたい。 3..Name = "page=1"も連番で増やしていきたい。 こんなことは可能でしょうか。 VBAは初心者以下です。 どなたかお助けください。

  • エクセルマクロ WEBクエリを使用。WEBのURLを一部変数にし順次データを表示させたいのですが、うまくいきません。

    WEBクエリでWEB画面上の一部の情報をエクセル上に表示させます。 その際、URLの一部を変更して、順次新しいデータを表示させたいのです。 具体的にはURLに数字があり、その数字を変数にし、エクセル上にある複数の数字を順次読ませて次々表示させるイメージです。 まず「マクロの記録」を使って、WEBクエリを読ませるベースを作りました。 例として、yahooファイナンスを使ったケースを用いますと ---------------------------------------------------- Sub Macro1() ' Macro1 Macro With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://quote.yahoo.co.jp/q?s=6758.t&d=t", Destination:=Range("$A$1")) .Name = "q?s=6758.t&d=t" .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 = "10" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub ---------------------------------------------------- とマクロが書かれました。 この中の6758は証券コードで、別の証券コードにしたときの情報を取得したいため、6758を変数にしました。 ---------------------------------------------------- Dim SIC As Integer SIC = Range("A1").Text  ---------------------------------------------------- (注)Range("A1")に6758という数値が入っています この2文を上記ベースマクロの冒頭に加え、 ベースマクロ内の"6758"(2箇所)を"SIC"に打ちかえたら、 うまく読んでこないのです。 読ませるにはどうしたらよいでしょう。 素人なため、質問内容がわかりにくかったらご容赦ください。 わかりやすく教えて頂けるとありがたいです。 よろしくお願いします。

  • 取り込みたいWEBページのURLをURLが入力されているセルから取得(エクセル2002)

    最初に下のようにマクロを組みました。 WEBデータを取り込むマクロです。 【やってみたいこと】 セル上に入力されているURLを取り込む。 A1にhttp://biz.yahoo.co.jp/ranking/up/day/all.html が入力されていた場合に "URL;http://biz.yahoo.co.jp/ranking/up/day/all.html" のURL部分「http://biz.yahoo.co.jp/ranking/up/day/all.html」 を(A1)などに置き換えることは可能でしょうか? Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2004/10/15 ユーザー名 : ' ' With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://biz.yahoo.co.jp/ranking/up/day/all.html", Destination:=Range("A1" _ )) .Name = "all" .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 = "11" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub

  • マクロのなかの一部(日付)を書き換えたい

    マクロのなかの一部(日付)を書き換えたくてその部分を変数で 変更したいのですがうまく行きません少し長くなりますが下記の どの部分を直したら良いのでしょうか御教願えませんでしょうか セル Range("K1") に 20081007 の日付が入っています Sub Tuika1() Dim xxx As String xxx = Range("K1") Range("A6").Select With Selection.QueryTable .Connection = "URL;http://www.?????.com/data/daily.cgi/& xxx &.html" .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "5,6,7,10,11,12,13,14,15,16,17,18,19,20" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub

  • VBA Webクエリについて

    VBA初心者です。 VBAを使い、下記「やりたいこと」をしたいのですが、 「質問内容」にありますように、上手くできません…。 基礎がわかっていない為、お粗末な内容かもしれませんが、 教えてください。何卒よろしくお願い致します。 ■やりたいこと シート「1」にあるURLアドレスのリスト(C列)に沿って WEBクエリを実行し、シート「2」に取得したデータを 連続して末行に入力したいです。 ■質問内容 見よう見真似で、下記VBAを作成しました。(1To3は仮の回数です) WEBクエリが実行され、末行に取得データが入力されますが、 1回目、2回目の取得データは消え(長い空白行ができ)、 ラストの3回目のデータのみが残るかたちになります。 取得したデータが消えず、連続してWEBクエリを実行できるよう 下記を添削して頂けませんでしょうか。 ---------------------------------------------------------------- Sub Macro2() Dim Lrow As Long For カウンタ = 1 To 3 Lrow = Worksheets("2").Range("A" & CStr(Rows.Count)).End(xlUp).Row セル範囲 = "C" & カウンタ With ActiveSheet.QueryTables.Add(Connection:= _ "URL;" & Worksheets("1").Range(セル範囲).Value, Destination:=Worksheets("2").Range("A" & Lrow)) .Name = Worksheets("1").Range(セル範囲).Value .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlEntirePage .WebFormatting = xlWebFormattingNone .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With Next End Sub

  • VBAでデータ更新が遅い

    こんにちは。 たびたびお世話になってます。 今、VBAでYahooファイナンスのサイトからWebクエリでシートに株価データを落として 手元にある、株価の入ったcsvファイルを更新する(新しいデータがあれば更新)マクロを 書いてるんですが、マクロ実行当初はまぁまぁの速さなのですが、株価データは大量に あるため、3000銘柄くらいダウンロードすると、段々と速度が落ちてしまいます。 速度が落ちない良い方法はないでしょうか。 csvはエクセルでオープンしてます。Open文でcsvをテキストとして開いた方が 良いんでしょうか。。とりあえず、Webクエリの部分だけですが、ご教示お願いします。 Sub WebStockGet(ByVal httpUrl As String, ByRef testWs As Worksheet) With testWs.QueryTables.Add(Connection:=httpUrl, Destination:=testWs.Range("A1")) .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlAllTables .WebFormatting = xlWebFormattingNone .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub -- エクセル2003

  • エクセルVBA URLの記述をセル参照に

    VBA初心者です。WEBクエリの作業をマクロで記録したものを編集しています。 そこで、コードのURL部分をセル参照にしたいのですが、コンパイルエラーが出るため記述が間違っているようです。もともとが間違っているのかどうかもわからず、その点につきまして、ご教授をお願い申し上げます。 Connection:="URL;http://www.○○○○" ↓編集 (URLを入れているセルは、Sheet1のA1、データを返すのはSheet2のA1) Connection:="ActiveWorkbook.WorkSheets("Sheet1").Range("A1")" "Sheet1"部分が選択された状態でエラーとなります。 以下は、ソースです。 Sub test1() With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://www.○○○○", Destination:=Range _ ("$A$1")) .Name = "151" .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 = "22" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub

  • セルの値を変数にする方法

    こんばんわ。 http://oshiete1.goo.ne.jp/qa4545875.html で、質問したことですが、新しく質問させていただきます。 ネット上のリンク先URLを取得することはできて 取得したURLをシート1のA1~A102に貼り付けてあります。 そのあとWebクエリを使って、シート2に A1のURLから結果データが取込んだら、次は A2のURLから結果データを取り込む~最終行まで結果データを シート2に取り込みしたいのですが、とうしたらよいでしょうか? Webクエリを使って、ひとつのURLから結果データを取り込むコードは 次のとおりです。 この処理を繰り返ししたいのですが、どなたか教えてください。 ---------------------------------------- Sub データ読込み() Dim i As Range Set i = Range("a" & Range("a" & Rows.Count).End(xlUp).Row).Offset(1) Range("a" & Range("a" & Rows.Count).End(xlUp).Row).Offset(1).Select With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://www.jra.go.jp/datafile/seiseki/replay/2008/001.html", Destination _ :=i) .Name = "001_3" .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 = "20" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub

  • 自動Web取込み

    例えば、ゆうパック 都道府県別の基本運賃表「http://www.post.japanpost.jp/service/you_pack/charge/ichiran.html」の県名がハイパーリンクになっておりA3からA49にデータが入っているとします。 各県を自動的に開け、運賃「http://www.post.japanpost.jp/service/you_pack/charge/ichiran/01.html」をB53以降に取込みたいと思っております。 Sub sample() Dim h As Hyperlink For Each h In ActiveSheet.Hyperlinks h.Range.Offset(0, 1) = h.Address Next Dim i As Long Dim myAddress As String For i = 3 To 49 myAddress = Range("B" & i).Value With ActiveSheet.QueryTables.Add(Connection:= _ "URL;" & myAddress, Destination:=Range("B53")) .Name = "01" .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 = "1" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With Next i End Sub URL「http://www.post.japanpost.jp/service/you_pack/charge/ichiran/01.html」のコピーされたB4、B5と変化させる方法がうまくいきません。 宜しくお願い致します。

専門家に質問してみよう