HIT数 / 11件
これまで、下のコードにてクリップボード出力ができていました。しかし、Windows 10 anniversary update が終わった頃から(?)急にできなくなりました。クリップボードには謎の2バイト(3F 3F)が入っています。Excel は 2010 と 2016 で同じ現象でした。2台のマシンで同じ現象です。他のマシン環境によっては出力できています。どなたか原因と回避策をご存じの方はいらっしゃいますか?いらっしゃいましたらお手数ですがぜひご教授下さいますようお願いいたします。(Win API を直接使うコードに書き直すと回避できるのは確認済みです。DataObject を使う前提でお願いします。)Public Sub SetClipboard(s As String) Dim CB As DataObject Set CB = New DataObject With CB .SetText s .PutInClipboard End With Set CB = NothingEnd Subこの記事にはVBAのコードが含まれています。緑の太文字→注釈茶色の太文字→条件分岐赤の太文字→ループ青の太文字→その他++++++++++++++++++++OS ⇒OTHERVersion⇒OTHER++++++++++++++++++++
これまで、下のコードにてクリップボード出力ができていました。しかし、Windows 10 anniversary update が終わった頃から(?)急にできなくなりました。クリップボードには謎の2バイト(3F 3F)が入っています。Excel は 2010 と 2016 で同じ現象でした。2台のマシンで同じ現象です。他のマシン環境によっては出力できています。どなたか原因と回避策をご存じの方はいらっしゃいますか?いらっしゃいましたらお手数ですがぜひご教授下さいますようお願いいたします。(Win API を直接使うコードに書き直すと回避できるのは確認済みです。DataObject を使う前提でお願いします。)Public Sub SetClipboard(s As String) Dim CB As DataObject Set CB = New DataObject With CB .SetText s .PutInClipboard End With Set CB = NothingEnd Sub
回答ではありません。同様の現象で、βも困っています。今のところ、机の上には Win7+xl2010 PC と Win10+xl2013 PC を並べて配置しており必要があれば Win7+xl2010PC側で処理していますが、こまったものですよねぇ・・・エキスパートさんからの回答を心待ちにしています。
解決には至っていないのですが、この現象で質問したことがあります。別板ですけど、ご参考まで。ht p://www.excel.studio-kazu.jp/kw/20160326092004.html
一度書きこみましたが、いったん消去します。
β様、レスありがとうございます。まず、ht p://www.excel.studio-kazu.jp/kw/20160326092004.htmlの内容確認しました。紹介されていたht ps://support.microsoft.com/ja-jp/kb/929833にあります、システム ファイル チェッカーをやってみましたが異常なしでした。続いて、実行時バインディングについてですが、ユーザーフォームを使っており、Microsoft Forms 2.0 Object Libraryへの参照設定はすでに行われる状態です。また、文字列の内容が全角だけでなく、半角のみでも異常となります。解決に至っていませんが、報告でした。心より感謝しております。なお、その後検索しておりますと、海外でも同様に困っているようなので、日本語圏だけの問題ではにようです。この掲示板で、さらなる情報が得られることを期待しております。皆様よろしくお願いいたします。この記事にはVBAのコードが含まれています。緑の太文字→注釈茶色の太文字→条件分岐赤の太文字→ループ青の太文字→その他
β様、レスありがとうございます。まず、ht p://www.excel.studio-kazu.jp/kw/20160326092004.htmlの内容確認しました。紹介されていたht ps://support.microsoft.com/ja-jp/kb/929833にあります、システム ファイル チェッカーをやってみましたが異常なしでした。続いて、実行時バインディングについてですが、ユーザーフォームを使っており、Microsoft Forms 2.0 Object Libraryへの参照設定はすでに行われる状態です。また、文字列の内容が全角だけでなく、半角のみでも異常となります。解決に至っていませんが、報告でした。心より感謝しております。なお、その後検索しておりますと、海外でも同様に困っているようなので、日本語圏だけの問題ではにようです。この掲示板で、さらなる情報が得られることを期待しております。皆様よろしくお願いいたします。
変な方法ですいません。ただ、同じMSForms関連なのでどうなるか不明です。なお、こちら、Win10(1607),Excel2010ですが、DataObjectは正常みたいです。 Dim t As Object Set t = CreateObject("Forms.TextBox.1") t.Value = "xあ123" t.SelStart = 0 t.SelLength = t.TextLength t.Copyこの記事にはVBAのコードが含まれています。緑の太文字→注釈茶色の太文字→条件分岐赤の太文字→ループ青の太文字→その他
変な方法ですいません。ただ、同じMSForms関連なのでどうなるか不明です。なお、こちら、Win10(1607),Excel2010ですが、DataObjectは正常みたいです。 Dim t As Object Set t = CreateObject("Forms.TextBox.1") t.Value = "xあ123" t.SelStart = 0 t.SelLength = t.TextLength t.Copy
報告します。w10.16 さんの方法でうまくいきます。おぉ!! とうなり、あらためて、昨日は化けて格納されためでぷさんのコードや別板で話題になった別コードを実行。ん???いずれも、うまくいきます。何度やってもうまくいきます。ただ、別板でのディスカッションでも登場していたんですが、うまくいって喜んでいたらまた、急に NG の状況になるということも、いままで まま ありましたのでしばらく状況を見ますが、w10.16 さんの実行により、何かがPC上でおこった?とりあえず、当方の状況の報告まで。
報告の続報です。うまくいっていたものが、またもや NG になりました。で、ずっとNGです。私がトライしているものは、紹介した別板で取り上げていた、あるユーティリティのようなものでシート上の表のイメージに列記号、行番号を付加して、それをクリップボードに格納。掲示板上で、それを手動でペーストして、アップしているのですが、こういった使い道なので多くの場合は、・別ブックのシートにあるレイアウト部分を選択・それを、ユーティリティが書かれているマクロブックのシートにコピペ。ここまでは手動です。で、マクロを動かして DATAOBJECT経由でクリップボードに格納しているんですがこの手順(別ブックのシートをコピペで取り込む)で行うと、クリップボードはめでぶ さんコメントの 不思議な2文字となってしまいます。で、その後、何度やってもNG。う〜ん・・・・ 実行前の手動コピペに何か悪さをする要因があるのでしょうか・・・??
全く関係のない話だと思いますが、コピペがらみの話題として。従来、ブラウザはIEを使っていましたが、Win10に変更(無理やり、いつの間にか変更されたくち)以来、デフォルトのEDGEを使っています。で、従来、掲示板上のコードを選択して、Ctrl/c、VBE画面で Ctrl/v で問題なくコードがコピペされていましたが、EDGEでやると、空白行には PRINT と書きこまれ、コードの行の1桁目から開始位置までは ??? が埋まります。Win10でも、IE上でコピーすると、従来通り、全く問題ありません。
w10.16 さんの Forms.TextBox を使う方法であっさり解決しました。皆様ありがとうございました。もともと form を使っていたのだから、むしろこちらの方法の方が素直ですよね。感謝いたします。この掲示板には感謝です。これから勉強して、お答えする側に回りたいです。しかし、CreateObject がうまくいかないのはいったい何だったんでしょうか...ちなみに、Mac の Excel 2016 では日本語変数名が使えない件は皆さんご存じでしょうか?Microsoft って、これだけシェアを握りながらやってることのレベルが低いですよね。もう振り回されるのは沢山... 愚痴でした...
追記です。Forms.TextBox を使う場合ですが、MultiLine = True に設定しておく必要があります。ユーザーフォームに TextBox を配置しただけのデフォルトでは MultiLine = False になっていますので注意が必要です。なお、幅と高さと座標を0にして見えないようにしても問題なく動作しました。