Excel VBA質問箱 IV

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

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


50794 / 76733 ←次へ | 前へ→

【30823】Re:Select Case
回答  Hirofumi  - 05/11/5(土) 9:46 -

引用なし
パスワード
   尚、GetBranch1、GetBranch2はユーザー定義関数としても使えます

Option Explicit

Public Sub Sample()

  Dim i As Long
  Dim lngRows As Long
  Dim rngList As Range
  Dim strProm As String
  
  Set rngList = ActiveSheet.Cells(1, "B")
  With rngList
    'データ行数を取得
    lngRows = .Offset(65536 - .Row).End(xlUp).Row - .Row + 1
  End With
  
  '画面更新を停止
  Application.ScreenUpdating = False
  
  With rngList
    For i = 1 To lngRows
      .Offset(i, -1).Value = GetBranch1(.Offset(i).Value)
'      .Offset(i, -1).Value = GetBranch2(.Offset(i).Value)
    Next i
  End With
  
  strProm = "処理が完了しました"
  
Wayout:
  
  '画面更新を再開
  Application.ScreenUpdating = True
  
  Set rngList = Nothing
  
  MsgBox strProm, vbInformation
  
End Sub

Public Function GetBranch1(vntMark As Variant) As Variant

  Dim strSelect As String
  
  Select Case vntMark
    Case Is = "1"
      strSelect = "北海道"
    Case Is = "2"
      strSelect = "青 森"
    Case Is = "3"
      strSelect = "群 馬"
    Case Is = "5"
      strSelect = "新 潟"
  End Select

  GetBranch1 = strSelect
  
End Function

Public Function GetBranch2(vntMark As Variant) As Variant

  Dim vntPrefecture As Variant
  
  vntPrefecture = Array("", "北海道", "青 森", "群 馬", "", "新 潟")
  GetBranch2 = ""
  
  If Val(vntMark) <= UBound(vntPrefecture) Then
    GetBranch2 = vntPrefecture(Val(vntMark))
  End If
  
End Function
2 hits

【30820】Select Case まるまる 05/11/5(土) 7:28 質問
【30821】Re:Select Case ponpon 05/11/5(土) 7:43 発言
【30831】Re:Select Case まるまる 05/11/5(土) 15:52 お礼
【30823】Re:Select Case Hirofumi 05/11/5(土) 9:46 回答
【30832】Re:Select Case まるまる 05/11/5(土) 15:54 お礼

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