0

テキストファイルの内容を読み取り、その新しいワークブックを作成し、作成されたワークブック内の特定のセクションを使用する Excel 用のマクロを作成しようとしています。必要な列に簡単にアクセスできるようにするために、Workbook.OpenText を使用しました。しかし、ファイルに修正パスを挿入する代わりに、クリップボードにコピーしたファイルのパスを取得したいと考えています。私の問題は、ウィンドウのクリップボードにアクセスする方法がわからないことです。ここでクリップボードの操作に関するチュートリアルを見つけましたが、期待されるライブラリにアクセスできません。このフォーラムで説明されているように、自分のコンピューターでも FM20.DLL というファイルを検索しましたが、何も見つかりませんでした。これが私のコードです:

Workbooks.OpenText Filename:="C:\path\to.txt", Origin _
        :=-535, StartRow:=16, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1 _
        ), Array(14, 1), Array(58, 1), Array(68, 1)), TrailingMinusNumbers:=True
4

2 に答える 2

0

別の方法で問題を解決しました。OpenText メソッドはもう使用しません。次のコードを使用して、クリップボードからワークシートに挿入しました。

Range("A1").Select
ActiveSheet.Paste

これは私の質問の答えではありませんが、以前の答えよりもはるかに簡単に見えます。それも機能しましたが、ライブラリを手動でインポートして、さらに多くのコードを記述する必要がありました。コードにアクセスする必要がある方法は、別の方法になりました。行から行へジャンプし、行を変数に保存し、文字列から空白を削除します

stringLine = Replace(Range("A" & row).Value, " ", "")

を使用して、いくつかの値を持つ配列を作成します

anArray = Split(stringLine, "|")

とにかく、助けてくれてありがとう;)

于 2012-08-03T08:57:19.740 に答える
0

ユーザーフォームがまったく必要ないと仮定すると

ステップ1

ステップ2

ステップ3

コードを追加します

Sub ShowClipboardData()
    'In the VBA editor, go to Tools, References, and set a reference to the "Microsoft Forms 2.0 Object Library"
    Dim MyDataObject As DataObject
    Set MyDataObject = New DataObject
    MyDataObject.GetFromClipBoard
    MyDataObject.GetText
    MsgBox CStr(MyDataObject.GetText)
End Sub
于 2012-07-26T07:50:47.757 に答える