人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

vbaの質問です。
excel sheetに ActiveXのテキストボックスを作り、
そのテキストボックスと excel sheet上のcellとリンクさせる
これを、手動でできます。
なお、ユーザフォームにテキストボックスを作るのではなくて、
エクセルシート上で、テキストボックスとリンク先のcellは
同居します。
これを、VBAで実現したいのです。

次のコードでテキストボックスは作れるのですが、Cellにリンクを
VBAで貼る方法がわかりません。 どうすれば良いでしょうか。
Sub macroG()
Dim i As Integer
Set mySht = ActiveSheet
On Error Resume Next
For i = 1 To 4
Set myShp1 = mySht.OLEObjects.Add(ClassType:= _
"Forms.TextBox.1", Link:=False, DisplayAsIcon:=False, _
Left:=360, Top:=75 + 48 * i, Width:=180, Height:=36)
With myShp1
.Name = "SA" & CStr(i)
End With
Next i
Set myShp1 = Nothing: Set mySht = Nothing
End Sub

実際には、エクセルシートの条件をVBAで読み取って、シート上に
コントロールの位置、サイズ、リンク先を決定しながら、コントロールを
VBAで自動配置したいので、ユーザフォームは使いたくありません。
リンク先のCellと情報を双方向にしたいので、リンクを貼りたいのです。



●質問者: hathi
●カテゴリ:コンピュータ
✍キーワード:360 ActiveX ADD as cell
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●200ポイント ベストアンサー

見当違いな回答でしたら住みません。

Sub macroG()
 Dim i As Integer
 Set mySht = ActiveSheet
 On Error Resume Next
 For i = 1 To 4
 Set myShp1 = mySht.OLEObjects.Add(ClassType:= _
 "Forms.TextBox.1", Link:=False, DisplayAsIcon:=False, _
 Left:=360, Top:=75 + 48 * i, Width:=180, Height:=36)
 With myShp1
 .Name = "SA" & CStr(i)
 .LinkedCell = "A" & i  '★★★ セルとのリンクを設定
 End With
 Next i
 Set myShp1 = Nothing: Set mySht = Nothing
End Sub

ということでしょうか。

http://www.geocities.jp/happy_ngi/YNxv98316.html

◎質問者からの返答

Mookさん ありがとうございます。

回答頂いたことのねらいは、私の思っていることです。

ただし、このコードでは、私のPCでは、ねらいが実現しません。

With myShp1

.Name = "SA" & CStr(i) '★ オブジェクト名が設定できない

.LinkedCell = "A" & i '★ セルとのリンク設定ができない

End With

位置、サイズは設定できるのですが、valueやLinkedCell、MultiLine

などのプロパティが設定できないのです。

もちろん このコードの実行が完了した後で、手動でプロパティを

設定すればそれはできます。 VBAでこれを設定したいのです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ