Excel VBA質問箱 IV

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

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


18124 / 76738 ←次へ | 前へ→

【64057】Re:今回作ったマクロを特定のシートで1度に実行させたい場合
回答  SS  - 10/1/14(木) 9:57 -

引用なし
パスワード
   ▼Ex初心者 さん:

こんにちは
sub_samplepleに少し追記してtestから呼び出す方法を作ってみました。
sub_samplepleは特定シートを対象にしていたのでWorkSheet指定していなかったのをFor Eachで取得したmySheetが反映されるようにしました。
変数名は適当なものが思いつかなかったので好きなように置き換えて下さい。
まとめ用のシートの行入れ替えがされないようにする必要があります。
今回は一つにまとめても良いのかも知れませんが、シート種類による処理の手法が複数になる場合を考慮すると呼び出す形のが便利かなと考えました。

Sub test()
  Dim mySheet As Worksheet
  For Each mySheet In Worksheets
    If mySheet.Name = "まとめシート" Then
      MsgBox "処理を飛ばします"
    Else
      Call sub_sampleple(mySheet)
    End If
  Next mySheet
End Sub

Sub sub_sampleple(MS As Worksheet)
  Dim myB2 As Integer
  Dim myMOVE As Boolean
  Dim myRow As Long
  Dim myRowMax As Long
  Dim myCnt As Long
 
  '第一条件の判定
  Select Case MS.Range("B2").Value
    Case "あ", "い", "う"
      myB2 = 1
    Case "え", "お"
      myB2 = 2
  End Select
 
  myRow = 3    'B3から
  myRowMax = 20  'B20までをチェック
  Do
    '第二条件の判定
    Select Case MS.Cells(myRow, 2).Value
      Case 1, 11, 20
        myMOVE = (myB2 = 1)
      Case 50, 100
        myMOVE = (myB2 = 2)
      Case Else
        myMOVE = False
    End Select
  
    '移動処理
    If myMOVE Then
      MS.Rows(myRow).Cut
      MS.Rows(30 + myCnt).Insert Shift:=xlDown '30行目に挿入
      MS.Rows(30 - 1).Insert Shift:=xlDown
      myCnt = myCnt + 1
      myRowMax = myRowMax - 1
    Else
      myRow = myRow + 1
    End If
  Loop Until myRow > myRowMax
 
End Sub

>▼SS さん:
>>▼Ex初心者 さん:
>>こんにちは、初めての機能を使うときはそれ単独で動作確認をすると
>>良く内容が理解できると思います。Msgboxの利用が有効かも
>>新しいBOOKの標準モジュールに以下のマクロを貼り付け実行してから
>>各シートのA1セルを確認してみてください。
>>Sub test()
>>  Dim mySheet As Worksheet
>>  For Each mySheet In Worksheets
>>'>〜
>>'>内
>>    mySheet.Range("A1").Value = mySheet.Name
>>'>容
>>'>〜
>>  Next mySheet
>>End Sub
>
>SS様
>
>ご返答+アドバイスありがとうございます!
>動作確認についてはデバックで追いかけてみたりしつつどういう動作をするのかを随時確認しながらやっている状態です
>
>?な部分は調べつつで、わからないことも多いですが・・・
>
>助言ありがとうございました!

0 hits

【63996】セル内の文字、数字を判定して それを他の行に移動させたい Ex初心者 10/1/9(土) 11:21 質問
【63999】Re:セル内の文字、数字を判定して それを... 超初心者 10/1/9(土) 16:43 発言
【64039】Re:セル内の文字、数字を判定して それを... Ex初心者 10/1/12(火) 10:03 発言
【64049】Re:セル内の文字、数字を判定して それを... Ex初心者 10/1/13(水) 12:01 お礼
【64050】今回作ったマクロを特定のシートで1度に実... Ex初心者 10/1/13(水) 16:18 質問
【64051】Re:今回作ったマクロを特定のシートで1度に... SS 10/1/13(水) 16:55 発言
【64056】Re:今回作ったマクロを特定のシートで1度に... Ex初心者 10/1/14(木) 9:04 お礼
【64057】Re:今回作ったマクロを特定のシートで1度に... SS 10/1/14(木) 9:57 回答
【64058】Re:今回作ったマクロを特定のシートで1度に... Ex初心者 10/1/14(木) 10:16 お礼
【64061】Re:今回作ったマクロを特定のシートで1度に... Ex初心者 10/1/14(木) 13:32 質問
【64062】Re:今回作ったマクロを特定のシートで1度に... SS 10/1/14(木) 14:58 発言
【64063】Re:今回作ったマクロを特定のシートで1度に... Ex初心者 10/1/14(木) 15:55 お礼
【64064】Re:今回作ったマクロを特定のシートで1度に... Ex初心者 10/1/14(木) 16:38 お礼
【64070】超初心者様、SS様 ありがとうございました... Ex初心者 10/1/15(金) 16:40 お礼

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