
No.2ベストアンサー
- 回答日時:
「任意」の意味はVBAの中で自由に設定できると解釈しました。
Case以下を参考にして下さい。下の例は、Sheet1~3の各テキストボックスに、'各シートに対応してmyText1_1、myText1_2、myText1_3・・・と名前を付けています。(Textの次がシート番号です)
2つのボタンは逆の処理なので表示・非表示を切り替えています。
最初は、結合していない状態を確かめて、結合ボタンから開始して下さい。
'標準モジュールに貼り付けます。
Public Sub Ketugou(mySht As Integer)
Dim sht As Integer 'シート
Application.ScreenUpdating = False
For sht = 1 To 3
Worksheets("Sheet" & sht).Activate
With Worksheets("Sheet" & sht)
Select Case sht
Case 1 '例、1,2,3を結合
.Shapes.Range(Array("myText1_1", "myText1_2", "myText1_3")).Select
Case 2 '例、2,3,4を結合
.Shapes.Range(Array("myText2_2", "myText2_3", "myText2_4")).Select
Case 3 '例、1,4を結合
.Shapes.Range(Array("myText3_1", "myText3_4")).Select
End Select
Selection.ShapeRange.Group.Select 'グループ化
Selection.Name = "grp" & sht 'グループ名(解除できるよう勝手に名前を付けている)
.Shapes("grp" & sht).TopLeftCell.Select 'グループの左上を選択状態にする
.cmdKetugo.Visible = False '結合ボタンを非表示
.cmdKaijyo.Visible = True '解除ボタンを表示
End With
Next
Worksheets("Sheet" & mySht).Select '元のシートに戻る
Application.ScreenUpdating = True
End Sub
Public Sub Kaijyo(mySht As Integer)
Dim sht As Integer 'シート
Application.ScreenUpdating = False
For sht = 1 To 3
Worksheets("Sheet" & sht).Activate
With Worksheets("Sheet" & sht)
.Shapes("grp" & sht).Select 'グループを選択
Selection.ShapeRange.Ungroup.Select '結合解除
.Shapes("myText" & sht & "_1").TopLeftCell.Select '左上セル
.cmdKetugo.Visible = True '結合ボタンを表示
.cmdKaijyo.Visible = False '解除ボタンを非表示
End With
Next
Worksheets("Sheet" & mySht).Select '元のシートに戻る
Application.ScreenUpdating = True
End Sub
各シートには同名のボタンが2個あります。cmdKetugoとcmdKaijyo。
各シートモジュールに貼り付けます。ただし、KetugouとKaijyoの次の数値は、そのシート番号にします。どのシートに復帰すればいいかを表しています。
Private Sub cmdKetugo_Click()
Ketugou 1
End Sub
Private Sub cmdKaijyo_Click()
Kaijyo 1
End Sub
またまたnishi6さん!いつもすみません!ありがとうございます。
結合したら結合ボタンが消えて、解除が現れの繰り返し、には感動しました。
おーっ!って感じでした。今回も一発で成功しました。
ほんとにいつもいつもありがとうございます。
ところで、さいそくしてすみませんが、テキストボックスに値を入れるの質問1)2)3)の件、私のほうは、まだうまくいきません!やっぱりまだまだですね!もう、私の作戦はでつくしました。ギブアップ寸前です。いつも無理言ってすみませんが、よろしくお願いします。
No.1
- 回答日時:
Private Sub CommandButton1_Click()
'グループ化
Dim myDocument As Worksheet
Set myDocument = Worksheets("Sheet1")
myDocument.Shapes.Range(Array("Text Box 1", "Text Box 3")).Group
End Sub
Private Sub CommandButton2_Click()
'グループ解除
Dim myDocument As Worksheet
Set myDocument = Worksheets("Sheet1")
myDocument.Shapes("Group 1").Ungroup
End Sub
ヘルプ「ShapeRange コレクション オブジェクト」のサンプルの変形です。
"Text Box 1"などの名前に関しては、あらかじめイミディエイトペインで
? Worksheets(1).shapes(1).name
などとして調べておけば良いでしょう。
グループ解除については、ここでは単純化していますが実際には、も少しややこしいです。
というのも、グループ化を行うごとにShapeオブジェクトが新規に生成され、同時に名前(Group X)が新しく自動で生成されるからです。
この問題に関しては、グループ化を行う前と後で、Shapesコレクションの中身を比較し、新たに増えたオブジェクトの名前を記録しておけば解決できると思います。
不明点とかあれば、補足してください。
ARCさん!いつも回答ありがとうございます。
早速コードを書いていますが、まだ動いてくれません。でも何とか動きそうなのでがんばってみます。
また何かありましたら、よろしくお願いします。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Visual Basic(VBA) Vba 電卓 一文字消すボタン 3 2022/05/04 13:40
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- HTML・CSS 【html】検索ボックスを作りたい 4 2022/04/02 17:25
- Word(ワード) ワード 2003。表とテキストボックスや図をグループ化出来ませんか? 2 2022/04/17 15:06
- PDF Word→pdfに変換する際,図形部分に画像が上書きされる 1 2023/02/01 12:49
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルシートの見出しの文字...
-
EXCELで存在しないシート...
-
EXCELで複数のシートを一度に「...
-
特定のシートのみ再計算させな...
-
ワークシートそのものの色を変...
-
エクセルでブック内の倍率がバ...
-
アクセスからエクセルのシート...
-
別シートの文字列があったら現...
-
Wordで差し込み印刷時に表示す...
-
EXCELの図形(テキストボックス)...
-
エクセル シート毎 連続で曜日...
-
Access VBAからExcelシートの削除
-
3つのエクセルをそれぞれのシ...
-
エクセルのファイルサイズが急...
-
エクセルのシート名の変更がで...
-
【ExcelVBA】マクロの入ったシ...
-
エクセル 100名分の送付状作成 ...
-
Excel、Aのシートにあって、Bの...
-
エクセルの複数シートでのリン...
-
ハイパーリンクでジャンプした...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
【ExcelVBA】マクロの入ったシ...
-
ハイパーリンクでジャンプした...
-
特定のシートのみ再計算させな...
-
EXCELの図形(テキストボックス)...
-
エクセルで複数のシートに画像...
-
エクセルのファイルサイズが急...
-
エクセル、特定のシートにパス...
-
Accessのテーブルを既存のExcel...
-
エクセルのシー名を二段表示に...
-
エクセルの2つのシートを並び...
-
EXCELで存在しないシート...
-
エクセルの複数シートでのリン...
-
エクセルで、シートの名前を変...
-
EXCELの「シートの見出し」のフ...
-
Wordで差し込み印刷時に表示す...
-
ワークシートそのものの色を変...
-
エクセルを開くとメニューバー...
-
エクセル、別のシートの表をポ...
おすすめ情報