Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9526 / 13646 ツリー ←次へ | 前へ→

【26840】数値挿入について 悩める人 05/7/20(水) 17:22 質問[未読]
【26841】Re:数値挿入について ちくたく 05/7/20(水) 18:09 回答[未読]
【26852】数値挿入について 悩める人 05/7/21(木) 11:16 質問[未読]
【26854】Re:数値挿入について ちくたく 05/7/21(木) 11:47 回答[未読]
【26857】Re:数値挿入について 悩める人 05/7/21(木) 14:15 お礼[未読]

【26840】数値挿入について
質問  悩める人  - 05/7/20(水) 17:22 -

引用なし
パスワード
   プログラムのことで教えて頂きたいのですが、マクロのボタンをクリックするとワークシートのA1〜B10のセルに入っている数値をA1〜A10までをA11〜A20、B1〜B10までをA21〜A30の順でA11〜A30に数値を縦に並べ替えて挿入し、A1〜B10のセルに新たな数値を入れボタンをクリックすると次はB11〜B30にその数値が入り、またクリックするとC11〜C30に数値が入るというように特定の列まで繰り返し右の列に挿入するようにするにはどのようなプログラムにすればいいのでしょうか?
また、この上記のマクロを作り使用した際に、間違えて入力した場合に、そのときに間違えて入力してしまった列のみを消去できるようなボタンを作るにはどうすればいいでしょうか?
だれか教えてください

【26841】Re:数値挿入について
回答  ちくたく  - 05/7/20(水) 18:09 -

引用なし
パスワード
   マクロのボタンの意味がわかりませんでしたが。。。
例えば、
標準モジュールを以下のように。
Sub test()

  UserForm1.Show
  
End Sub

次に、ユーザーフォームを用意し、そこに、テキストボックスとボタンを一個貼り付けて、
ボタンをダブルクリックし、以下のように。
Private Sub CommandButton1_Click()

  Dim myRows As String
  
  If TextBox1.Text = "" Then
    MsgBox "貼り付け先の列を指定してください。"
    Exit Sub
  End If
  
  myRows = TextBox1.Text
  Range("A1:A10").Copy (ActiveSheet.Range(myRows & "11:" & myRows & "20"))
  Range("B1:B10").Copy (ActiveSheet.Range(myRows & "21:" & myRows & "30"))
  
  Unload UserForm1

End Sub

かなり格好悪いですが、上記で動きます。


▼悩める人 さん:
>プログラムのことで教えて頂きたいのですが、マクロのボタンをクリックするとワークシートのA1〜B10のセルに入っている数値をA1〜A10までをA11〜A20、B1〜B10までをA21〜A30の順でA11〜A30に数値を縦に並べ替えて挿入し、A1〜B10のセルに新たな数値を入れボタンをクリックすると次はB11〜B30にその数値が入り、またクリックするとC11〜C30に数値が入るというように特定の列まで繰り返し右の列に挿入するようにするにはどのようなプログラムにすればいいのでしょうか?
>また、この上記のマクロを作り使用した際に、間違えて入力した場合に、そのときに間違えて入力してしまった列のみを消去できるようなボタンを作るにはどうすればいいでしょうか?
>だれか教えてください

【26852】数値挿入について
質問  悩める人  - 05/7/21(木) 11:16 -

引用なし
パスワード
   ちくたくさん回答ありがとうございました。
テキストボックスを使わずにボタンをクリックすると隣に移動するようにはできませんか?

【26854】Re:数値挿入について
回答  ちくたく  - 05/7/21(木) 11:47 -

引用なし
パスワード
   目的も利用形態もわからないので、こうやったらできるよ的なコードですが、次のような手順でやれば、望みの動作はすると思います。
1.1つのブックに2つ以上のシートを用意する。
2.2番目のシートのA1に書き出したい行のR1C1の数字(Aなら1)を入れる。
3.標準モジュールに次のコード。

Sub test()

  Dim myColumns As Integer
  
  '2番目のワークシートのA1に列Aを示す、1を入れておいて、
  myColumns = Worksheets(2).Range("A1").Value
  
  Range("A1:A10").Copy _
  (ActiveSheet.Range(Cells(11, myColumns), Cells(20, myColumns)))
  Range("B1:B10").Copy _
  (ActiveSheet.Range(Cells(21, myColumns), Cells(30, myColumns)))
  
  '2番目のワークシートをBとかに増やしていく。
  myColumns = myColumns + 1
  Worksheets(2).Range("A1").Value = myColumns

End Sub

4. エクセルの「表示/ツールバー/フォーム」を表示し、その中にあるボタンをエクセルのシートの適当な場所に置いて、ボタンに上記のマクロを登録する。

ボタンを押すとそんな雰囲気の動作はすると思います。ただし、動けばいいや的なやり方ですが。。。

▼悩める人 さん:
>ちくたくさん回答ありがとうございました。
>テキストボックスを使わずにボタンをクリックすると隣に移動するようにはできませんか?

【26857】Re:数値挿入について
お礼  悩める人  - 05/7/21(木) 14:15 -

引用なし
パスワード
   いいプログラムありがとう御座いました。
問題解決です。

9526 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free