Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2015
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1. '----------------------------------
  2. '読み込んだファイルのデータをシート[比較元ファイル]に展開する
  3. '----------------------------------
  4. Sub ReadXlsFile_Theta()
  5. '-------------------------
  6. '変数群
  7. '-------------------------
  8.  
  9. 'ExecuteExcel4MAcro関数の引数にする変数
  10. Dim Target As String
  11. '読み込むファイルまでのパスを格納する変数
  12. Dim myPath As String
  13. Dim buf As String
  14. 'xlsファイルからのデータを格納する配列(もしかしたらつかわないかも?)
  15. Dim myBuf() As String
  16. 'ファイル名
  17. Dim myFname As String
  18. 'シート名
  19. Dim mySheetName As String
  20. 'カウンタ変数(行をスキャン)
  21. Dim Retu As Integer
  22. '列の終端列
  23. Dim Retu_E As Integer
  24. 'カウンタ変数(列をスキャン)
  25. Dim Gyou As Integer
  26. '行の終端行
  27. Dim Gyou_E As Integer
  28.  
  29.  
  30.  
  31.  
  32. '画面の更新をオフにする
  33. Application.ScreenUpdating = False
  34.  
  35. '--------------------------------------
  36. '比較元ファイルの読み込みの処理
  37. '--------------------------------------
  38.  
  39. '対象ブック名を含めたフルパスを取得(ダイアログボックス表示)
  40. myPath = Application.GetOpenFilename("Microsoft Excel ブック,*.xls?")
  41. Debug.Print myPath
  42.  
  43. 'ツール本体シートのセルD2に読み込んだファイルのフルパスを出力
  44. Worksheets("ツール本体(TestBed)").Cells(2, 4) = myPath
  45.  
  46. 'ファイル名に[]をつける
  47. myPath = Replace(myPath, Dir(myPath), "[" & Dir(myPath) & "]")
  48. '対象ワークシート名を取得(ワークシート名[完成データ]をデフォにする)
  49. mySheetName = InputBox("読み込むファイル名を入力してください(比較元ファイル)", Default:="完成データ")
  50.  
  51. Retu_E = InputBox("最終行の番号を入力してください")
  52.  
  53. Gyou_E = InputBox("最終列の番号を入力してください")
  54.  
  55. '上記の処理で何も入力されなかった場合は、マクロを終了させる
  56. If mySheetName = "" Then
  57. MsgBox "シート名が入力されませんでした"
  58. Exit Sub
  59. End If
  60. '変数TargetにExecuteExcel4Macroで使用するデータに整形する
  61. Target = "'" & myPath & mySheetName & "'!"
  62. 'Debug.Print Target
  63. '上記で整形したシート名が有効かどうかの検証をA1で行う
  64. buf = ExecuteExcel4Macro(Target & "R1C1")
  65. '上記の処理でシート名が読み込む値が何も無かった場合の処理
  66. If buf = "" Then
  67. MsgBox "ワークシート[" & mySheetName & "]読み込み不可", vbExclamation
  68. 'マクロ終了
  69. Exit Sub
  70. End If
  71. '-----------------------------------
  72. 'データの読み込み(行・列で読み出す)
  73. '-----------------------------------
  74. For Gyou = 1 To Gyou_E
  75. For Retu = 1 To Retu_E
  76. '比較元シートに読み込んだデータを展開
  77. Worksheets("比較元シート").Activate
  78. ActiveSheet.Cells(Retu, Gyou) = ExecuteExcel4Macro(Target & "R" & Retu & "C" & Gyou)
  79. Next
  80. Next
  81.  
  82.  
  83.  
  84. '--------------------------
  85. '比較先ファイル読み込み
  86. '--------------------------
  87. '対象ブック名を含めたフルパスを取得(ダイアログボックス表示)
  88. myPath = Application.GetOpenFilename("Microsoft Excel ブック,*.xls?")
  89. Debug.Print myPath
  90.  
  91. 'ツール本体シートのセルD2に読み込んだファイルのフルパスを出力
  92. Worksheets("ツール本体(TestBed)").Cells(3, 4) = myPath
  93.  
  94. 'ファイル名に[]をつける
  95. myPath = Replace(myPath, Dir(myPath), "[" & Dir(myPath) & "]")
  96. '対象ワークシート名を取得(ワークシート名[完成データ]をデフォにする)
  97. mySheetName = InputBox("読み込むファイル名を入力してください(比較先ファイル)", Default:="完成データ")
  98.  
  99. Retu_E = InputBox("最終行の番号を入力してください")
  100.  
  101. Gyou_E = InputBox("最終列の番号を入力してください")
  102.  
  103. '上記の処理で何も入力されなかった場合は、マクロを終了させる
  104. If mySheetName = "" Then
  105. MsgBox "シート名が入力されませんでした"
  106. Exit Sub
  107. End If
  108. '変数TargetにExecuteExcel4Macroで使用するデータに整形する
  109. Target = "'" & myPath & mySheetName & "'!"
  110. 'Debug.Print Target
  111. '上記で整形したシート名が有効かどうかの検証をA1で行う
  112. buf = ExecuteExcel4Macro(Target & "R1C1")
  113. '上記の処理でシート名が読み込む値が何も無かった場合の処理
  114. If buf = "" Then
  115. MsgBox "ワークシート[" & mySheetName & "]読み込み不可", vbExclamation
  116. 'マクロ終了
  117. Exit Sub
  118. End If
  119. '-----------------------------------
  120. 'データの読み込み(行・列で読み出す)
  121. '-----------------------------------
  122. For Gyou = 1 To Gyou_E
  123. For Retu = 1 To Retu_E
  124. '比較先シートにも読み込んだ同じデータを展開
  125. Worksheets("比較先シート").Activate
  126. ActiveSheet.Cells(Retu, Gyou) = ExecuteExcel4Macro(Target & "R" & Retu & "C" & Gyou)
  127. Next
  128. Next
  129.  
  130. MsgBox "ファイル読込終了"
  131.  
  132. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement