![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
「テキストボックスにリンクしたいセルのアドレスを数式バーに入力し、
アドレスを消すとテキストボックスに値が残る」
という方法があることを知ったのですが、
テキストボックスの数が多いため、1つずつアドレスを消すのが大変な状況です。
質問
①複数ある数式バーのアドレスをまとめて1回で消す方法はないでしょうか。
②同様に、複数のテキストボックスに残った値を1回で消す方法はないでしょうか。
知識が浅いため、出来るだけ簡単な方法を教えていただけたら助かります。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
こんばんは。
>テキストの形を図形の楕円や角丸四角形などにしているsheetは
>1、2とも反応しません。(消すことができません)
話が、本来、テキストボックスの話でしたから、それに集約させました。
一応、知らべてみた結果では、
If shp.AutoShapeType > 0 Then
このように変えればよいはずです。
コードを全部上書きをしてしまうか、行のところだけを上書きをしてください
>このとき、値表記も見た目消えてしまったので、無理か・・・と思ったのですが、
>値を黒字にすると、無事、表記されました。。
この現象は、私のほうは、[既定の図形]として[塗りつぶしなし]とか、文字の色は[黒]、
線は[黒][0.75]を設定していますから、変化しませんが、
デフォルト状態は、線が[青]で[塗りつぶしあり]で、文字の色も黒ではなかったはずです。
マクロで設定の一部が変わると、デフォルトになってしまうのだと思います。
まあ、もちろん、こういうレベルはマクロでは可能です。
1.複数ある数式バーのアドレスをまとめて1回で消す(オートシェイプ編)
Sub ClearFormulaInTxtBox()
Dim shp As Variant
Range("A1").Select
For Each shp In ActiveSheet.Shapes
If shp.AutoShapeType > 0 Then '*
shp.DrawingObject.Formula = ""
End If
Next shp
End Sub
2.複数のオートシェイプに残った値を1回で消す方法
Sub ClearTxtInTxtBox()
Dim shp As Variant
Range("A1").Select
On Error Resume Next
For Each shp In ActiveSheet.Shapes
If shp.AutoShapeType > 0 Then
shp.DrawingObject.Text = ""
End If
Next shp
On Error GoTo 0
End Sub
3.今回の検査に使った、文字を入れるマクロ【数式のアドレスではありません】
'まずフォーム・コントロールにこのマクロを登録します。
'使い方は、最初に、オートシェイプを選択し、ポタンをクリック
'次にセルの任意の所をダイアログボックスで選択し、OKをクリック
'現行では、一つのセルしか選べません。
'オートシェイプの選択の仕方で、ダイアログボックスが
'出にくいことがありますが、選択の位置をずらしながら、数回ボタンをクリックしてください。
Sub PutInShapes()
Dim shp As Object
Dim r As Range
If VarType(Selection) = vbObject Then
On Error Resume Next
Set shp = Selection
If shp Is Nothing Then Exit Sub
If shp.ShapeRange.AutoShapeType > 0 Then
Set r = Application.InputBox("セルを選択してください。", Type:=8)
If Not r Is Nothing Then
shp.Text = r.Text '一つだけ(ここは変更可能)
End If
End If
Else
MsgBox "最初に、オートシェイプを選択してください。", vbInformation
End If
On Error GoTo 0
End Sub
御礼
言葉足らずで、大変お手数をお掛けしてしまいました。
申し訳ございません。
お蔭様でコードを上書きすることで、1、2とも解決しました。
マクロのことも、全く知識がなかったのですが、
丁寧に教えて頂けたので、私にも作ることが出来ました。
本当に有難うございました。
文字の色も、黒色・単色塗りつぶしを既定のテキストボックスに設定しましたら、
こちらも解決することが出来ました。
「3.今回の検査に使った、文字を入れるマクロ」は、
今のところ、まだ出来上がっていない状態ですが、頑張ります。
まずは、御礼かたがた、ご報告とさせて頂きます。
有難うございました。
No.1
- 回答日時:
こんにちは。
一気に消す方法とかいうのは、マクロしか思いつきません。
以下のものをVBEに貼り付けください。
貼り付け場所は、表計算画面から、Alt+ F11 -> Alt +I →(Altを押したまま)->M
なお、フォームコントロール(開発メニュー挿入)のボタンに、マクロ登録をすると、便利だと思います。
1.複数ある数式バーのアドレスをまとめて1回で消す
Sub ClearFormulaInTxtBox()
Dim shp As Variant
Range("A1").Select '←誤動作を防ぐため
For Each shp In ActiveSheet.Shapes
If shp.AutoShapeType = msoShapeRectangle Then
shp.DrawingObject.Formula = ""
End If
Next shp
End Sub
2.複数のテキストボックスに残った値を1回で消す方法
Sub ClearTxtInTxtBox()
Dim shp As Variant
Range("A1").Select
On Error Resume Next
For Each shp In ActiveSheet.Shapes
If shp.AutoShapeType = msoShapeRectangle Then
shp.DrawingObject.Text = ""
End If
Next shp
On Error GoTo 0
End Sub
本当にありがとうございます。
VBEにそのまま貼り付けると1回で消せました。
ただ、テキストの形を図形の楕円や角丸四角形などにしているsheetは
1、2とも反応しません。(消すことができません)
楕円や角丸四角形などの図形にしている箇所も1回で消せる方法がありましたら
ご教示頂けましたら助かります。
再三お手数をお掛けしますが、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。 3 2023/03/19 18:31
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- その他(パソコン・スマホ・電化製品) ワードでテキストボックス内の文字を連動させない方法 2 2023/02/09 16:56
- Excel(エクセル) Excelで日付のグラフへの表示 2 2022/04/15 11:04
- Visual Basic(VBA) Excel VBA ユーザーフォーム内のラベルにテキストボックスの小計を出す方法 5 2022/08/17 14:27
- Visual Basic(VBA) EXCEL VBA ユーザーフォームの内容をループでデータベースに登録したい。 2 2023/02/02 10:22
- その他(インターネット接続・インフラ) Yahooメールのアドレスは複数登録できますか? 出来るなら既存のアドレスを消さないで作る方法を教え 2 2022/04/12 16:11
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- PDF PDFのテキストを追加機能 1 2022/06/18 12:45
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
ある範囲のセルから任意の値を...
-
検便についてです。 便は取れた...
-
2つの数値のうち、数値が小さい...
-
一番多く表示のある値(文字列...
-
精液の落とし方を教えてください
-
エクセル指定した範囲からラン...
-
エクセルのラベルの値(文字列...
-
EXCELで条件付き書式で空白セル...
-
値が入っているときだけ計算結...
-
MIN関数で空白セルを無視したい...
-
甲状腺が腫れているが血液検査...
-
エクセルで数式の答えを数値と...
-
テスターで断線を調べる方法教...
-
エクセルでθを求めたい。
-
小数点以下を繰り上げたものを...
-
中出しをするとお腹が痛い・・・。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
精子が黄色?
-
EXCELで条件付き書式で空白セル...
-
至急!尿検査前日にオナニーし...
-
これって喉仏ですか? 私は女性...
-
中出しをするとお腹が痛い・・・。
-
甲状腺が腫れているが血液検査...
-
2つの数値のうち、数値が小さい...
-
尿検査前日に自慰行為した時の...
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
ある範囲のセルから任意の値を...
-
口の中に黒い血の塊
-
【Excelで「正弦波」のグラフを...
-
エクセル指定した範囲からラン...
おすすめ情報
御礼の追加が出来なかったので、こちらに書かせていただきます。
1.複数ある数式バーのアドレスをまとめて1回で消す
角丸四角の図形の形になっていたテキストを、一旦、四角の形に変更して
マクロを実行したら、1回で式が消えました。
このとき、値表記も見た目消えてしまったので、無理か・・・と思ったのですが、
値を黒字にすると、無事、表記されました。(黒字以外は反応しませんでした)
2.複数のテキストボックスに残った値を1回で消す
1同様の方法で消せました。
理屈は分からないのですが、私がやりたかったことは完璧に出来ました。
本当に有難うございました。