• 締切済み

クリップボード内テキスト取得について

Excelで A1|100 A2|200 A3|300 とセルに入力して A1、A3をCtrlを押しながら選択しコピーし VB6側でClipboard.GetTextとすると 選択していないA2の200という値も受け取ってしまいます。 エディタに対して貼付しても結果は同じでした。 Excel内で別セルに貼り付けるとA1、A3の値のみ貼付が可能でした。 VB6内部でExcelオブジェクトを作成してブックを作成した 場合も結果は同様でA2の200という値を受け取ってしまいます。 動作としてはA2の値を受け取らない様にしたいのですが どの様にすればよいのでしょう? 宜しくお願い致します。

みんなの回答

回答No.1

クリックボードからデータを取り出す際、テキストデータとしてではなく、Excel固有の形式としてを取り出さなければならないと思われます。 VBの標準機能では、そのような機能はないかもしれませんが、Clipboard関係のAPIを使用すれば可能だと思います。 しかし、Excel固有の形式でデータを取り出せても、そのExcel固有の形式がどのような構造になっているかは、公開されてないかもしれません。

関連するQ&A

  • EXCELの式をテキストエディタに貼り付けたい

    EXCELのセルに入力されている式をテキストエディタに貼り付けたいと思っています。 たとえば、A1に 「10」 が入っていて、 A2に「=A1」と入っている状態で A2のセルをコピーしてテキストエディタ(たとえばメモ帳)に貼り付けると「10」がペーストされますが、 そうではなく、「=A1」がペーストされるようにしたいのです。 EXCEL内のほかのセルへのペーストだったら「形式を選択して貼付け」で「式」を選択すればいいことは知っているのですが、テキストエディタへのやり方は知らないので、途方に暮れています。 どなたか宜しくお願い致します。

  • VBA でテキストファイルに読み書き

     エクセル2000のVBAを使用しています。 ブックAファイル名をブックBのセルに入力して、ブックAをインデックスの様な扱いのファイルを作成使用としたのですが、ブック間で変数のやり取りは出来ないと思います。できるんですか??  その為、txtファイルを変数代わりに使おうと思っているのですが、 入出力の方法が良くわかりません。  簡単にブックBのセルの値をtxtファイルに書き込んでブックAで、 そのtxtファイルを読み込む様なVBAのコード教えて下さい。 初心者ですけど・・。

  • PowershellでExcelの値を取得したい

    PowershellでExcelの値を取得したい こんにちは。Powershellを勉強しています。 Excelを開いて、セルの値を読み取って、合計値を出力したいと思っています。 Excelファイルの A1に10 B1に50 が入力されています。 その上が下記のコードを書きました。 $path = "C:\\Book1.xlsx" $Excel = New-Object -ComObject Excel.Application $Excel.Visible = $TRUE $Book = $Excel.Workbooks.Open($path) $Sheet = $Book.Worksheets.Item("Sheet1") $CellValue1 += $Sheet.Cells.Item(1,1).Text #10が入っている $CellValue2 += $Sheet.Cells.Item(1,2).Text #50が入っている $Values = $CellValue1 + $CellValue2 Write-Host $Values $Book.Close() $Excel.Quit() 実行すると、なぜか CellValue1に「10101010」という値が入ってしまっています。 CellValue2に「5050」という値が入っています。 Write-Host $Valuesを行うと、101010105050 という値が出力されてしまいます。 出力したい結果は「60」なのですが、目的と違った値が出力されてしまうのは何故でしょうか?

  • エクセルからテキスト(タブ区切り)で保存したら""が付きます

    エクセル2002で編集したデータをテキスト(タブ区切り)で保存しました。 それをメモ帳で開いたら文字の前後に「""」が付いていました。 エクセルで開いたときにはセル内が「A 123」となっているのに メモ帳で開いたときは「"A 123 "」となってしまいます。 コピー→値貼付しても直りません。 これはどうしてなのでしょうか?直す方法はありますか?

  • 1つのオブジェクトに複数のセルの値を表示させるのはどうやったらいいので

    1つのオブジェクトに複数のセルの値を表示させるのはどうやったらいいのでしょうか? やりたい事: 添付ファイルの選択されているオブジェクトの式に 『=A1:C1』と書かれていてA1~C1の値『2 3 4』が表示されています。 (コピーして作成した為作り方が分かりません) やってみた事: オートシェイプの四角形を作成し式に『=A1:C1』を入れて見た所A1の値の『2』のみが表示されてしまいます。 (選択されていないオブジェクト) 上記の様に一つのオブジェクトに複数のセルの値を表示させるにはどうしたらいいのでしょうか?

  • エクセルの値を範囲指定で取得してくるには?

    VB.netについての初歩的な質問かもしれませんがよろしくお願いします。 ●下記の様に値が入力されたエクセル(Book1.xls)があります。    A   B   C   D   E 1  100 200 300 400 500 2 600 700 800 900 999 ●VB.net側では下記のように宣言してあります。 Dim xlApp As Excel.Application Dim xlbook As Excel.Workbook Dim xlsheet As Excel.Worksheet ここで、Book1.xlsの"A1"から"E2"までのセルに入力されている値の中で最大のセルと最小のセルの色を変えるプログラムを作りたいと考えています。 【質問】 (1)この場合、『MAX関数』『MIN関数』の様なものは使用できないのでしょうか?使用できる場合は、セルの範囲指定で計算を行うことができないでしょうか?  ※ちなみに、セルを一つずつforループで検査する方法であればできています。 (2)またそのセル名(A5、C6等)を取得することはできないでしょうか? ご教授下さい。

  • エクセルでグラフ化の際のセル選択

    エクセルで棒グラフを作成しています。 とある列に数字が入力されており、一セルおきのデータを元にグラフを作成したいです。 なので、グラフ作成の値のところで、ctrlキーを押しながら、必要なセルだけを一個ずつ選択しています。 普段ならこれでグラフ化できるのですが、時々、セルが選択できません。 症状としては、6個目、7個目のセルはctrlキーを押しながら選択できるのですが、8個目のセルが1クリックで選択されず、もう一回押すと、7個目まで選択していたセル情報がなくなってしまいます。 わかりづらくてすみません。 これがいつもでるわけではないのが、やっかいな所ですが、何卒よろしくお願いします。

  • エクセル VBA find は別シートを検索できますでしょうか?

    こんばんわ。マクロ初心者です。 皆さんいつも親切なご回答ありがとうございます。 早速ですが質問内容を記入いたします。 ・ブックA を開いています。 選択している行のC列セルの値を検索キーワードにして、 ブックB 内を検索し、検索結果のセルの3つ左のセルの値を、 ブックA で選択していたセルの同じ行のO列(15列目)に入力したいです。 ※ブックBをアクティベートする事無く行えますでしょうか? (他の処理と組合わせて行い、回数も多いので、  ブックA⇔ブックB アクティベートの往復は避けたいです。) 下のようなマクロを作成してみましたがうまくいきません。 どうかご指導よろしくお願いいたします。 --------------------------------------------------------------- dim 検索品目 as string dim fcell as object dim i as integer i = Selection.Row '選択行の3列目セルの値を変数『検索品目』に格納 検索品目 = Cells(i, 3).Value 'オブジェクト変数『fcell』に検索したセルを格納 Set fcell = Cells.Find(What:=検索品目, After:=Workbooks("ブックB.xls").Worksheets("sheet1").Range("G2"), LookAt:=xlWhole, searchorder:=xlByColumns) '検索したセルの3行左のセルの値を変数『オーダ番号』に格納 オーダ番号 = fcell.Offset(, -3).Value 'ブック A の選択行の15列(O列)にデータ入力 Cells(i, 15) = オーダ番号

  • エクセルのbookを開いたときに

    作成したエクセルのBookを開いたときに指定のシートを選択している状態にしたい。 エクセルで作成したBook「基本.xls」にa,b,cというシート3つがあります。 このブックを開いたときに必ずaというシートのセルa1が選択された状態にするにはどうしたら良いのでしょうか?

  • クリップボードの内容をEXCELに貼付け

    クリップボード内容をエクセルのシートに貼り付けることをvbで行おうとしています。 1回目はできるのですが、2回目にはエラーが出てしまいます。(貼り付けるセルを指定したときに) 現状のコードを添付します。おかしなところがわかる方、教えて下さい。 '------------------------------------------------------- 'エクセルを起動させる '------------------------------------------------------- Public Sub ExcelProc() Dim xl2 As Excel.Application Dim xl2Book As Object Dim xl2Sheet As Object Dim ELSFileName As String 'エクセルの起動 Set xl2 = CreateObject("excel.application") xl2.Visible = True xl2.Workbooks.Open ("d:\test.xls") Set xl2Book = xl2.ActiveWorkbook Set xl2Sheet = xl2Book.Worksheets(1) 'D10にクリップボードの内容を貼り付ける xl2Sheet.Select Range("d10").Select ActiveSheet.Paste '保存するファイル名を作成 ELSFileName = "c:\test10.xls" '保存 ChDir "C:\" ActiveWorkbook.SaveAs FileName:=ELSFileName, FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Set xl2Sheet = Nothing xl2Book.Close True Set xl2Book = Nothing xl2.Quit Set xl2 = Nothing End Sub この関数を2度実行させたらエラーになります。 Range("d10").Select 'この箇所でエラーになる。 お願いします。