アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2003使用です。

エクセルのセル範囲("A1:J30")の値をそのまま
IEのテキストエリア(textarea)に貼り付けたいのですが、
うまくできません。

貼り付けたいテキストエリアは下記のサイトです。
http://www.tagindex.com/tool/excel_simple.html

下記のコードは、変数に代入して張り付ける方法ですが、
この方法の他に、

 ・rangeプロパティーでコピー&ペースト
 ・rangeプロパティーでコピー&Sendkeys "^v" 
  (Webのテキストエリアをフォカース済み)

の方法で試しても上手くいきませんでした。

どの方法でも結構なのですが、
できましたら勉強のために、
(可能ならば)セル範囲の値を文字型変数に代入できる方法で
教えてもらえると幸いです。

---------
Option Explicit

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Declare Function GetTickCount Lib "kernel32" () As Long

Sub sakusei_tbl_ikkatu()

'A1:J30に値を入力

Dim i As Long
Dim j As Long
Dim k As Long
Dim lngNum As Long

Dim varCell As Variant

lngNum = 1

Sheets("sheet1").Activate
varCell = Sheets("sheet1").Range("A1:J30")

For i = 1 To 30
For j = 1 To 10
varCell(i, j) = lngNum
lngNum = lngNum + 1
Next
Next

Range("A1:J30") = varCell

'---------IE起動

Dim wpfreeURL As String
Dim ie As Object

wpfreeURL = "http://www.tagindex.com/tool/excel_simple.html"

Set ie = CreateObject("InternetExplorer.application")

ie.Visible = True
ie.Navigate2 wpfreeURL

 'Call waitNavi(ie) ←質問ではコメントアウトさせてもらいます 

'---------Web画面に貼り付け

Dim doc_MyTable As Object

Set doc_MyTable = ie.document.getElementsByTagName("textarea")
For Each doc_MyTable In ie.document.all.tags("textarea")

If Trim(doc_MyTable.Name) = "data" Then

doc_MyTable.Value = varCell
Exit For

End If
Next

End Sub

よろしくお願いします

A 回答 (1件)

こんにちは。



比較的簡単な方法としては、
クリップボード→データオベジェクト経由で、
コピーした範囲全体のタブ区切りテキストを取得しておいてから、
doc_MyTable.Valueを設定するとか、、、。

Sub Re8747888()
Dim ie As Object
Dim doc_MyTable As Object
Dim oDataObj As Object
Dim wpfreeURL As String
Dim s As String

  wpfreeURL = "http://www.tagindex.com/tool/excel_simple.html"
  Set ie = CreateObject("InternetExplorer.application")
  ie.Visible = True

  ie.Navigate2 wpfreeURL
  Do While ie.busy Or ie.readystate < 4
    DoEvents
'    Sleep (10)
  Loop

  Range("A1:J30").Copy

  Set oDataObj = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") 'New DataObject
  oDataObj.GetFromClipboard
  s = oDataObj.GetText
  oDataObj.Clear
  Set oDataObj = Nothing

  Application.CutCopyMode = False

  For Each doc_MyTable In ie.document.all.tags("textarea")
    If Trim(doc_MyTable.Name) = "data" Then
      doc_MyTable.Value = s
      Exit For
    End If
  Next

End Sub

みたいな感じでどうしょうか?
    • good
    • 0
この回答へのお礼

cj_mover さま

こんちには!
早速のご回答ありがとうございました。

これです。これです。
クリップボードへのコピーがどうもイメージ通りにできなかったのですが、New DataObjectというのがあったのですね。

ありがとうございました!
今後ともよろしくお願いします。

お礼日時:2014/09/09 14:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!