質問するログイン新規登録

質問編集履歴

1

標準プロシージャでは作動するのですが、今回の元となったプロシージャ(クラス)についての質問を追記します。

2021/01/13 20:45

投稿

ice930
ice930

スコア99

title CHANGED
File without changes
body CHANGED
@@ -21,4 +21,70 @@
21
21
  プロシージャ終了後のシートの非表示状態とCtrl + Vでの文字列の貼り付けが可能であれば、コピーモードが継続していなくとも構いません。
22
22
 
23
23
  アドバイスいただきたく質問いたしました。
24
+ よろしくお願いします。
25
+
26
+ ### ~以下追記部分です~
27
+ 上記プロシージャですが、質問用で「標準モジュール」に入力したものでして、現在ご回答いただいた回答ですべて問題なく処理されました。(ありがとうございます!!)
28
+
29
+ 今回の質問の元となった問題点なのですが、「**クラスモジュール**」に記載されたプロシージャで有り、こちらに同様の手法を用いると Ctrl + V では空欄の貼り付けになってしまい、これを解決したく追記で質問いたしました。
30
+ (最初の時点でモジュールの種類が問題ではないと思い記載しませんでした・・・。申し訳ありません。)
31
+
32
+ ```ここに言語を入力
33
+ Private Sub tgtctrl_Click()
34
+ Dim intRow As Long
35
+ Dim URL As String
36
+ Dim intcol As Long
37
+ Dim i As Long
38
+
39
+ MsgBox "コピーしました"
40
+ i = tgtctrl.Tag
41
+ intRow = tgtrange.Row
42
+ intcol = 5 + 2 * i
43
+
44
+ ECOL = 1
45
+ Do While Cells(2, ECOL) <> ""
46
+ If InStr(Cells(2, ECOL), "URL") > 0 Then
47
+ SCOL = ECOL
48
+ End If
49
+ ECOL = ECOL + 1
50
+ Loop
51
+ SCOL = SCOL + 1
52
+ ECOL = ECOL - 1
53
+
54
+ Dim ws As Worksheet
55
+ Set ws = ThisWorkbook.Worksheets("パスワード")
56
+
57
+ ActiveSheet.Unprotect
58
+
59
+ Dim x '変数宣言
60
+ x = Cells(intRow, intcol).Value '値のみ取得
61
+ With New DataObject
62
+ .SetText x
63
+ .PutInClipboard
64
+ .GetFromClipboard'変数確認用
65
+ a = GetText'変数確認用
66
+ End With
67
+ MsgBox a'変数確認用
68
+
69
+ ActiveSheet.Protect
70
+ End Sub
71
+ ```
72
+ フォームに配置された「コピーボタン」を押すとおこるイベントです。
73
+ 1月13日時点でアドバイスいただいた方2名の方のコードを参考に作成しました。
74
+
75
+ 一部確認用で配置したコード(3行)も有り、そのまま残しています。('変数確認用とコメント入れています。)
76
+
77
+ 以下については確認しています。
78
+ - Microsoft Forms 2.0 Object Library の参照設定はされていました。
79
+ - ステップインでCells(intRow, intcol)の文字列は問題なく参照されていました。
80
+ - 変数xに文字列は問題なく参照されていました。
81
+
82
+
83
+ 以下は現在の状況です。
84
+ - エラーは起こりませんが、Ctrl + V で貼り付けを行うと空欄が貼り付けられる。
85
+ - クリップボードから文字列を取り出し(a = GetText)表示させると空欄になる。(クリップボードに変数xが入っていない?)
86
+
87
+ クラスモジュールからクリップボードへの貼り付けは不可能でしょうか。
88
+ 原因やこの場合のクリップボードへの貼り付け方法についてアドバイスいただければ有難く思います。
89
+
24
90
  よろしくお願いします。