• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキストボックスの移動(2))

テキストボックスの移動(2)

nishi6の回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

書いてみました。ユーザーフォームを使えば、また違ったものになるでしょう。今のままでは作りがダブっていますね。 シート1~3に spnLeft: 左右用スピンボタン、spnTop: 上下用スピンボタン cmdInitialize:初期化用ボタンを配置(同名) 左右初期値用セル(iLftj)、左右増分用セル(dLftj) 上下初期値用セル(iTopj)、上下増分用セル(dTopj)の名前を付ける。 ()は範囲名で<j>はシート番号と同じにする。 図形は1ピクセル単位で動きます。そのまま保存すれば状況は記憶されています。 下をシート1~3の各シートモジュールに貼り付ける dLft1やdTop1の<1>はシートにあわせて<2>、<3>に変える。 Private Sub spnLeft_SpinDown() '左右方向の微調整(マイナス) Range("dLft1") = Range("dLft1") - 0.75: move_Lft Range("dLft1") End Sub Private Sub spnLeft_SpinUp() '左右方向の微調整(プラス) Range("dLft1") = Range("dLft1") + 0.75: move_Lft Range("dLft1") End Sub Private Sub spnTop_SpinDown() '上下方向の微調整(マイナス) Range("dTop1") = Range("dTop1") + 0.75: move_Top Range("dTop1") End Sub Private Sub spnTop_SpinUp() '上下方向の微調整(プラス) Range("dTop1") = Range("dTop1") - 0.75: move_Top Range("dTop1") End Sub Private Sub cmdInitialize_Click() '初期化 Range("dLft1") = 0: move_Lft Range("dLft1") Range("dTop1") = 0: move_Top Range("dTop1") End Sub 標準モジュールに貼り付ける Public Sub move_Lft(dLft) '左右方向の微調整 Dim st As Integer 'シートカウンタ For st = 1 To 3 With Worksheets("Sheet" & st) .Range("dLft" & st) = dLft .Shapes("myText1").Left = .Range("iLft" & st) + .Range("dLft" & st) End With Next End Sub Public Sub move_Top(dTop) '上下方向の微調整 Dim st As Integer 'シートカウンタ For st = 1 To 3 With Worksheets("Sheet" & st) .Range("dTop" & st) = dTop .Shapes("myText1").Top = .Range("iTop" & st) + .Range("dTop" & st) End With Next End Sub これ以上は短くならなかった。

rurucom
質問者

補足

nishi6さん動きましたよー すごいですねー! あとひとつ質問させてください。微調整のボタンを押したとき、テキストボックスが一番左に行ってしまうのですがどうしてでしょうか? よろしくお願いします。

関連するQ&A

  • エクセルVBAで、テキストボックスに値を入れる(3)

    質問がバラバラになってしまってすみません! エクセルVBAで、テキストボックスに値を入れる(1)の 回答13で、 データシートの何行目~何行目までを印刷させる方法(Sheet7にボタン) をさせるには、どうしたら良いでしょうか?宜しくお願いします。 前回のURL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=79173       http://oshiete1.goo.ne.jp/kotaeru.php3?qid=85389

  • テキストボックスに値を入れる(4)

    テキストボックスに値を入れる(3)で回答をいただいた、終了ボタンなんですが、このときは、2つのファイルを上書き保存して終了させたのですが、「OkWeb_Menu.xls」の方だけ、上書きせずに終了させたいのですが、どうしたらよいでしょうか? いろいろ試して見ましたが、うまくいきません。よろしくお願いします。 前回の回答 2)終了ボタン~Sheet7に配置~ ここでは、メニュー(終了できる方)を「OkWeb_Menu.xls」 データシートを「OkWeb_Data.xls」とします。(ご自分のファイル名に変えてください)   1.タイトルバーの左のアイコンのクリック、   2.タイトルバーの右クリック   3.タイトルバーの×ボタン、   4.メニュー→閉じる、   5.ブックの× では閉じれなくする データシートのThisWorkBookのシートモジュールに貼り付けます。 Private Sub Workbook_BeforeClose(Cancel As Boolean) If Workbooks("OkWeb_Menu.xls").saveOk = False Then MsgBox "メニューから終了させてください!", vbOKOnly Cancel = True Else ActiveWorkbook.Save End If End Sub ***省略*** Workbooks("OkWeb_Menu.xls").saveOk = True Workbooks("OkWeb_Data.xls").Close saveChanges:=True ActiveWorkbook.Save Application.Quit End Sub 前回のURL(3):http://oshiete1.goo.ne.jp/kotaeru.php3?q=85392     (1)  http://oshiete1.goo.ne.jp/kotaeru.php3?qid=79173     (2)  http://oshiete1.goo.ne.jp/kotaeru.php3?qid=85389

  • テキストボックスの移動

    図形のテキストボックスをエクセル上に配置しているのですが、これをVBAを使って、配置されている位置を変える方法を探しています。 仕組みとしては、 1)ボタンを押す毎に、予め決めてい置いた位置、2個所~3個所へ移動していく方法 2)ボタン名に場所を示す何らかの名前が付いていて(例えば位置A、B・・・等)そのボタン(位置A)を押す事で予め決めておいたA位置へ、位置Bボタンを押すとB位置へ移動する方法 2点の仕組みで作りたいのですが、どなたか詳しい方、宜しくお願いします。

  • エクセルVBAで、テキストボックスにセルの値を入れる(2)

    エクセルVBAで、テキストボックスにセルの値を入れる(1)の 回答13で >うまくいったとしてもデータの書込みとテキストボックスの更新が同期がとれない時がある という部分で これは、どういった理由で同期がとれなくなるのでしょうか? それとその場合の対処法を教えてください。 前回URL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=79173

  • テキストボックスを消すVBA

    ボタンを押すことでテキストボックスが消えるようにしたいのですが、 ボタンは、2つ 「ONとOFF」 1~3のSheetにあるテキストボックスをSheet5に配置した「ONとOFF」のボタンで操作するようにしたいのですがよろしくお願いします。

  • フォーム内でのリストボックスなどの下三角とそのバックの色。

    昨晩 http://oshiete1.goo.ne.jp/kotaeru.php3?q=351693 という質問をし、テキストボックスや、送信ボタンなどは変更できました。 さらに、リストボックスなどの右の下三角やそのまわり(グレー部分)の 変更と、ラジオボタンも変更できたら・・・と欲張ってきました。 ラジオボタンはできなくてもいいのですが、リストボックスはぜひ変えたいの です。 何か方法はありますか?

  • テキストボックスの大きさを、基準の大きさに戻す(エクセルVBA)

    図形のテキストボックスの大きさを取得して、その値を各テキストボックスの基準の大きさとして記録しておき、テキストボックスの大きさをマウスでドラッグして大きさを変えた後、ボタン1つでもとの大きさに戻したいのですが、どのようにすればよいでしょうか? 1)図形のテキストボックス、大きさの取得方法は? 2)基準の大きさと記録する方法は? 3)記録された大きさに戻すには?(シート上に配置されたボタンで実行) ※ 複数のシートに複数のテキストボックスがあります。 ※ シート毎にセットします。(シート毎にテキストボックスのサイズが違う為) ※ 現在、各テキストボックスには、基準位置がセットしてあり、ボタンで基準位置へ戻る仕組みが組まれています。(これをそのままにして・・・) ※ エクセル97と2000で使えるようにします。(作成は97) 宜しくお願い致します。

  • 子ウィンドウから親ウィンドウのテキストボックスに・・・

    こんにちわ。 以前、JSで開いた子ウィンドウのテキストボックスに親ウィンドウから文字をはめるという質問をしました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=649391 今回は逆に、開いた子ウィンドウから親ウィンドウのテキストボックスに文字をはめたいと考えています。 親ウィンドウのウィンドウ名ってなにになるんでしょうか? お手数をおかけいたしますがお願い申し上げます。

  • テキストボックスをグループ化するVBA

    エクセル上に並んだテキストボックスを、ボタンを押すことで、任意のテキストボックスをグループ化させたい。また、別のボタンでグループ化の解除が出来るようなVBAをおしえてください。 テキストボックスは、Sheet1~3まであって、ボタンもそれぞれに配置してあり、 どこのSheetのボタンを押しても、各シート、それぞれに任意の設定したテキストボックスがグループ化できるようにしたい ※各シート、グループ化するテキストボックスはおなじでなない・・・ よろしくお願いします。

  • テキストボックスの複数選択(その2)

    前回、ここで教えていただきました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1809271 リストボックスで複数選択をして、選択項目を 北海道、青森、新潟というふうに「、」で区切ってセルへ表示の仕方を質問しましたが A1のセルへ北海道 B1のセルは青森 C1のセルへ新潟というふうに表示させる方法を教えてください。 初心者ですので、解説も入れていただけると助かります。 よろしくお願いします。