Excel VBA質問箱 IV

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

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


650 / 13645 ツリー ←次へ | 前へ→

【79241】コマンドボタンのプロシージャを見やすいように複数に分けたい miro 17/6/18(日) 19:58 質問[未読]
【79242】Re:コマンドボタンのプロシージャを見やす... マナ 17/6/18(日) 20:10 発言[未読]
【79243】Re:コマンドボタンのプロシージャを見やす... miro 17/6/18(日) 20:19 質問[未読]
【79245】Re:コマンドボタンのプロシージャを見やす... miro 17/6/18(日) 20:33 質問[未読]
【79246】Re:コマンドボタンのプロシージャを見やす... マナ 17/6/18(日) 21:08 発言[未読]
【79250】Re:コマンドボタンのプロシージャを見やす... miro 17/6/18(日) 23:25 質問[未読]
【79251】Re:コマンドボタンのプロシージャを見やす... かな 17/6/19(月) 11:37 お礼[未読]

【79241】コマンドボタンのプロシージャを見やすい...
質問  miro  - 17/6/18(日) 19:58 -

引用なし
パスワード
   コマンドボタン1のプロシの記述が長くなってしまったのですが、それをいくつかに分けて一つのモジュール内でで表示したいです。
同じPrivate Sub CommandButton1_Click() だとエラーが出ますので、適当な方法があれば教えていただきたいです。

【79242】Re:コマンドボタンのプロシージャを見や...
発言  マナ  - 17/6/18(日) 20:10 -

引用なし
パスワード
   ▼miro さん:

>コマンドボタン1のプロシの記述が長くなってしまったのですが、

それをここに貼り付けていただけますか。
そのほうが回答がつきやすいと思います。

【79243】Re:コマンドボタンのプロシージャを見や...
質問  miro  - 17/6/18(日) 20:19 -

引用なし
パスワード
   '追加ボタンの処理
Private Sub CommandButton1_Click()
  Dim 背景色 As Long, i As Integer     '背景色
  Dim 追加カウンタ As Range      'Count用の変数設定、9行づつ
  Dim 削除カウンタ As Integer '         '追加SUMの13文字削除用のカウンタ、13づつマイナス
  Dim 基点 As Integer           '基点セル定数設定
  Dim 人数 As Range
    
    
    '人数
''    人数 = Cells(20, 6)
    Set 人数 = ThisWorkbook.Worksheets("data").Cells(1, 2)
    人数 = 人数 + 1
    
    
    '追加ボタン用、行ずらしカウンター(9行づつ)
    Set 追加カウンタ = ThisWorkbook.Worksheets("data").Cells(2, 2)
    追加カウンタ = 人数 * 9
    
    
    '削除ボタン用,文字数削除カウンター(13文字づつ)
     削除カウンタ = Cells(18, 7)
     削除カウンタ = 人数 * 13
     Cells(18, 7) = 削除カウンタ

     基点 = 追加カウンタ - 5
    
    If 人数 = 1 Then 'qの値が-13なら以下の処理
          
    Else '基点からの通常処理
       '総計名称移動
       Range(Cells(基点, 3), Cells(基点 + 4, 3)).Cut Cells(基点 + 9, 3)
       '給料項目取得
       Range(Cells(基点 - 9, 3), Cells(基点 - 1, 3)).Copy Cells(基点, 3)
      
       '総計式に追加するSUM関数を文字列に変換するための変数宣言
       Dim 追加基本給 As String, 追加税金 As String, 追加諸手 As String
       Dim 基本給範囲 As String, 税金範囲 As String, 諸手範囲 As String '(D?:D?)
       Dim SUM関数 As String                      'SUM()
      
       Cells(基点, 4).Select
       '範囲選択したセルから座標データ取得
       Selection.Resize(3, 1).Select
         基本給範囲 = Selection.Address(False, False)
       Selection.Resize(4, 1).Offset(3).Select
         税金範囲 = Selection.Address(False, False)
       Selection.Resize(2, 1).Offset(4).Select
         諸手範囲 = Selection.Address(False, False)
             
       SUM関数 = "+SUM()"
            
       '取得した座標データを文字列のフォーマットに加工
       追加基本給 = strInsert(SUM関数, 5, 基本給範囲)
         Cells(12, 7) = 追加基本給
       追加税金 = strInsert(SUM関数, 5, 税金範囲)
         Cells(12, 9) = 追加税金
       追加諸手 = strInsert(SUM関数, 5, 諸手範囲)
         Cells(12, 11) = 追加諸手
      
      '--総計式移動--
      
       '基本給計の一人分の数式追加
       Cells(基点 + 10, 4) = Cells(基点 + 1, 4).Formula + 追加基本給
      
       '税金・社会保障計一人分の数式追加
       Cells(基点 + 11, 4) = Cells(基点 + 2, 4).Formula + 追加税金
      
       '諸手当計一人分の数式追加
       Cells(基点 + 12, 4) = Cells(基点 + 3, 4).Formula + 追加諸手
      
       '支給総計、数式設定一人分の数式追加
       Cells(基点 + 13, 4) = "=" & Cells(基点 + 10, 4).Address(False, False) _
                 & "-" & Cells(基点 + 11, 4).Address(False, False) _
                 & "+" & Cells(基点 + 12, 4).Address(False, False)
     End If
    
    '罫線作成
    Cells(基点, 2).Select ' 枠位置
    ActiveCell.Resize(9, 3).BorderAround Weight:=xlThin

    
    'ずらした時に残った総計の値をクリア
    Range(Cells(基点 + 1, 4), Cells(基点 + 4, 4)).ClearContents '総計クリア
      
    Range(Cells(基点, 2), Cells(基点 + 8, 2)).Merge       '名前のセル結合
    背景色 = Range("B4").Interior.Color                     '背景色数値取得
    Cells(基点, 2).Interior.Color = 背景色                 '色数値を対象セルにリリース
    Cells(基点, 2) = "さん"                      '名前設定
    Cells(基点, 2).HorizontalAlignment = xlCenter           '顧客名セル中央配置
    Cells(基点, 2).Font.Bold = True                  '顧客名文字太字
    Range("D:D").NumberFormatLocal = "\#,##0;\-#,##0"            '\設定
    
End Sub
この処理をいくつかに区切ったプロシージャで表示したいのです。

【79245】Re:コマンドボタンのプロシージャを見や...
質問  miro  - 17/6/18(日) 20:33 -

引用なし
パスワード
   修正中なので質問以外の回答は無しでお願いします。
単純に
このプロシをいつかのプロシージャに分ける方法が知りたいのです。

【79246】Re:コマンドボタンのプロシージャを見や...
発言  マナ  - 17/6/18(日) 21:08 -

引用なし
パスワード
   ▼miro さん:

分割するならこんな感じでしょうか。

Private Sub CommandButton1_Click()
  基点取得
  数式挿入
  書式設定
End Sub

【79250】Re:コマンドボタンのプロシージャを見や...
質問  miro  - 17/6/18(日) 23:25 -

引用なし
パスワード
   ▼マナ さん:
回答ありがとうございます。
そうですね、その様な感じに分けたいです。
もし、このコマンドボタンの処理をプロシージャ3つに分けるとしたら、どのように記述すればいいのでしょうか?

理想は
CommandButton1.1_Click()
基点取得
End sub

CommandButton1.2_Click()
数式挿入
End sub

CommandButton1.3_Click()
書式設定
End sub

こんな感じに分割して、VBE上でボーダーラインを引きたいのですが、これですと
一つのプロシしか実行できないので、これをボタンを押したら、上から順に実行される様にしたいんですが、何か適当な記述等あれば教えていただきたいです。

【79251】Re:コマンドボタンのプロシージャを見や...
お礼  かな  - 17/6/19(月) 11:37 -

引用なし
パスワード
   自己解決しました。
callを使ってそれぞれのプロシを呼び出す形にしたら上手くいきました。
回答ありがとうございました。

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