| 
    
     |  | こんばんは。 
 私も
 
 >>いい方法はないでしょうか?
 >別途ファイルを分けるか、Textをセルに入力して
 >配布する方法も検討する事をお勧めします。
 
 に賛成です。何故、テキストをわざわざOLEにしなければならないのかも
 知りたいところです。
 
 操作が簡単だからですか?
 でも、シートに取り込むのだって「外部データの取り込み」で簡単に出来ますよね?
 
 疑問です・・・・。
 が、以下のサンプルコードで簡単なテキストファイルではうまく作動しています。
 
 
 あくまでも新規ブックの標準モジュールに
 
 '===================================================
 Option Explicit
 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 Private Declare Function GetActiveWindow Lib "user32" () As Long
 Private Declare Function SetActiveWindow Lib "user32" (ByVal hWnd As Long) As Long
 '===================================================
 Sub test()
 Dim olenm As String
 Dim ole As OLEObject
 Dim hWnd1 As Long
 Dim hWnd2 As Long
 Dim shll As Object
 olenm = mk_sample_ole
 MsgBox "サンプルOLEを作成しました" & vbCrLf & _
 "これから、OLEの中のテキストをセルに表示します"
 Set shll = CreateObject("Wscript.Shell")
 shll.AppActivate Application.Caption
 Set ole = ActiveSheet.OLEObjects(olenm)
 hWnd1 = GetActiveWindow
 Application.DisplayAlerts = False
 ole.Verb xlVerbPrimary
 hWnd2 = hWnd1
 Do Until hWnd1 <> hWnd2
 Sleep 1000
 hWnd2 = GetActiveWindow
 Loop
 Call SetActiveWindow(hWnd2)
 shll.SendKeys "^A"
 shll.SendKeys "^C"
 DoEvents
 shll.AppActivate Application.Caption
 Range("a1").Select
 ActiveSheet.Paste
 SetActiveWindow hWnd2
 shll.SendKeys "%FX"
 Set shll = Nothing
 End Sub
 '===================================================
 Function mk_sample_ole()
 'サンプルとして、テキストファイルを作成し、
 'アクティブシートにoleオブジェクトを作成する
 Dim g0 As Long
 Dim fno As Long
 fno = FreeFile
 Open ThisWorkbook.Path & "\olesamp.txt" For Output As #fno
 For g0 = 1 To 26
 Print #fno, String(30, Chr(g0 + 64))
 Next
 Close #fno
 DoEvents
 ActiveSheet.Range("F10").Select
 With ActiveSheet.OLEObjects.Add(Filename:= _
 ThisWorkbook.Path & "\olesamp.txt", Link:=False, _
 DisplayAsIcon:=False)
 mk_sample_ole = .Name
 End With
 End Function
 
 
 上記のコードを含むブックを必ず保存した後にプロシジャーtestを実行してみてください。
 
 サンプルテキストファイル(olesamp.txt)を当該ブックと同じフォルダに作成し、
 そのテキストファイルからoleオブジェクトを作成します。
 
 このサンプルoleObjectから、テキストをアクティブシートのセルa1にコピーします。
 
 
 試してみてください。
 
 
 これは、あくまでサンプルです。
 
 冒頭で述べたとおり、仕様の変更を検討してみてください。
 
 
 |  |