[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/04/24(Tue) 22:43
投稿者名:いとう
Eメール:
URL :
タイトル:
エクセルのセルに貼り付けるには
よろしくお願いします。
やりたいことは、クリップボードにあるテキストをエクセルのアクティブなセルに
貼り付けたいのですが、どのようにしたら良いでしょうか?逆引きヘルプ等みてやっ
てみたのですが、思うものが出来ません。シートを新規に作成したり、エクセルを
閉じたりの操作は要りません。単に、ボタンをクリックすると、エクセルのアクティブ
なセルにクリップボードのテキストを貼り付けるだけです。
簡単でしょうか?よろしくお願いします。

投稿時間:2007/04/25(Wed) 00:25
投稿者名:かさのば
Eメール:
URL :
タイトル:
Re: エクセルのセルに貼り付けるには
取りあえず開発環境を書きましょう。

>>逆引きヘルプ等みてやってみたのですが、思うものが出来ません。
何をやって、その結果どうなったのかを書きましょう。
「思うものが出来ません」と言われても貴方の思考なんて他の人に分かるわけはありませんので

本題についてですが、Excelオートメーションを使ってグリグリ動かしてるならそのものズバリ「Pa
steメソッド」があります。
使い方はSelectメソッドで貼り付けたいセルを選択してPasteメソッドを呼び出すだけです。
よく分からなければExcelでマクロを取って確認してください。

投稿時間:2007/04/25(Wed) 11:28
投稿者名:いとう
Eメール:
URL :
タイトル:
Re^2: エクセルのセルに貼り付けるには
> 取りあえず開発環境を書きましょう。
VB.6.0 win98seです。

すいません少し質問を変えます。
センドメッセージでエクセルにキーを送る方法を使おうと思うのですが、エクセルの
シートのハンドルのとり方が分かりません。いろいろ調べたのですが、メインの
ハンドルをとる方法は沢山あるのですが、シートのハンドルを取らないとキーが
送れないですよね?それで、シートのハンドルはどのように取得できるでしょうか?
よろしくお願いします。

投稿時間:2007/04/25(Wed) 13:03
投稿者名:シュウ
Eメール:
URL :
タイトル:
Re^3: エクセルのセルに貼り付けるには
> > 取りあえず開発環境を書きましょう。
> VB.6.0 win98seです。
>
> すいません少し質問を変えます。
> センドメッセージでエクセルにキーを送る方法を使おうと思うのですが、エクセルの
> シートのハンドルのとり方が分かりません。いろいろ調べたのですが、メインの
> ハンドルをとる方法は沢山あるのですが、シートのハンドルを取らないとキーが
> 送れないですよね?それで、シートのハンドルはどのように取得できるでしょうか?
> よろしくお願いします。

とりあえず、質問内容は横に置いておきます。
あなたはここで質問をされる前にどういった調査をされましたか?
調べた媒体やサイト名などと調査内容を、"具体的に"教えてください。

投稿時間:2007/04/25(Wed) 16:49
投稿者名:いとう
Eメール:
URL :
タイトル:
Re^4: エクセルのセルに貼り付けるには
すいません色々調べて結局持っていた本を参考にエクセルに文字を送信できたのですが、

Private Sub Command1_Click()
    Dim xlsApp   As Object
    Dim xlsBook  As Object
    Dim xlsSheet As Object
    
    ' エラーを抑止
    On Error Resume Next
    ' 既に起動しているExcelへの参照
    Set xlsApp = GetObject(, "Excel.Application")
    
    ' アクティブなブックを参照
    Set xlsBook = xlsApp.ActiveWorkbook
    
' アクティブなワークシートを参照
        Set xlsSheet = xlsBook.ActiveSheet
    
    ' Excelへデータを送るプロシージャの呼び出し
    Call SebdData2Excel(xlsBook, xlsSheet)
    ' オブジェクトを解放
    Set xlsSheet = Nothing
    Set xlsBook = Nothing
    Set xlsApp = Nothing
    On Error GoTo 0
End Sub

Private Sub SebdData2Excel(xlsBook As Object, _
                           xlsSheet As Object)
    Dim intCol As Integer
    Dim intRow As Integer
    Const xlLineMarkers = &H41
    Const xlLocationAsObject = 2
    
xlsSheet.Cells(1, 1) = "A"

End Sub

現在上のようになっていて、セルを指定しないと文字を送れないのですが、セルを特に指定しないで
現在位置のセルに文字を書かせるにはどのようにしたら良いでしょうか?

よろしくお願いします。

投稿時間:2007/04/25(Wed) 18:06
投稿者名:neptune
Eメール:
URL :
タイトル:
Re^5: エクセルのセルに貼り付けるには
こんにちは

> 現在上のようになっていて、セルを指定しないと文字を送れないのですが、セルを特に指定しないで
> 現在位置のセルに文字を書かせるにはどのようにしたら良いでしょうか?
Activecellプロパティ?というのがありますが、これはどうでしょう?

OLEで使ったことないので、インスタンスが残るかどうかは慎重に確認してください。

投稿時間:2007/04/25(Wed) 19:52
投稿者名:いとう
Eメール:
URL :
タイトル:
Re^6: エクセルのセルに貼り付けるには
> こんにちは
>  
> > 現在上のようになっていて、セルを指定しないと文字を送れないのですが、セルを特に指定しないで
> > 現在位置のセルに文字を書かせるにはどのようにしたら良いでしょうか?
> Activecellプロパティ?というのがありますが、これはどうでしょう?
>
> OLEで使ったことないので、インスタンスが残るかどうかは慎重に確認してください。

ご回答ありがとう御座います。

xlsSheet.ActiveCell = "B"のように置き換えてやってみたのですが、動きが有りません。

投稿時間:2007/04/25(Wed) 20:17
投稿者名:大吉末吉
Eメール:
URL :
タイトル:
Re^7: エクセルのセルに貼り付けるには
> xlsSheet.ActiveCell = "B"のように置き換えてやってみたのですが、動きが有りません。

動きが無いのは、

>     ' エラーを抑止
>     On Error Resume Next
をやっているからでは?


外して見てください。

> xlsSheet.ActiveCell = "B"
は、エラーになると思いますよ。(つまり動作していない)

#「ActiveCell」は、Sheetブジェクトのプロシージャじゃありません。
#AppicationオブジェクトやWindowオブジェクトのプロシージャです。

投稿時間:2007/04/25(Wed) 22:34
投稿者名:いとう
Eメール:
URL :
タイトル:
Re^8: エクセルのセルに貼り付けるには
ありがとう御座います。
で、どのようにしたらよいでしょうか?
with変数が定義されていないとか出ますが意味がわかりません。
色々試したのですが結局出来ませんでした。

何か教えていただけないでしょうか

投稿時間:2007/04/25(Wed) 22:58
投稿者名:Renard
Eメール:
URL :
タイトル:
Re^9: エクセルのセルに貼り付けるには
> with変数が定義されていないとか出ますが意味がわかりません。
ヘルプとか見てみました?

> 色々試したのですが結局出来ませんでした。
コレではあなたの努力が見えませんよ。
取りあえず、試したコードを投稿してみるとか・・・。

あと、オブジェクトブラウザという便利なツールがありますから、
活用されては如何ですか?

投稿時間:2007/04/26(Thu) 11:59
投稿者名:いとう
Eメール:
URL :
タイトル:
Re^10: エクセルのセルに貼り付けるには
すいません。今回は諦めます。