複数のフォルダ内にあるエクセルファイルの中身を参照して、特定範囲内にある情報を抽出したいです。
具体的に参照したいエクセルファイルの該当箇所は、Range("B4:D4")、Range("E7:G7")範囲内でその範囲に文字列があった場合、その文字列を読み取るようにしてほしいです。
まず、エクセルファイルのRange("B4:D4")にある値を、
自分のファイルに出力させたいです。
以下の3点についてアドバイス頂けると助かります。
①処理の流れがあっているか
②Sub Bookinfo(loop1 As Integer)の引数の設定の仕方は大丈夫か
③datename に値が入力されない
Sub Bookinfo(loop1 As Integer)
Dim datename As String '作成日
Dim loop1 As Integer '繰り返し
For loop1 = 2 To 4 'B4からD4の値を検索
if Cells(loop1,4) <> "" '値があれば
datename = Cells(loop1, 4) '変数に値を入力
Exit For
End If
Next
Cells(1, 1) = subjectname '値を出力
End Sub
宜しくお願いします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+1
該当するセルが決まっているなら、
- CHOOSE関数を使う
- Forループを回す
- なんらかの判断をする
か
- 評価するセル範囲を配列に入れる
- Forループを回す
- なんらかの判断をする
でよいのでは?
前者は評価するセルの個数が29個までになります(CHOOSE関数の仕様)
'評価するセル範囲を配列に入れる
Dim EvaluateRange(1 To 6) As String
EvaluateRange(1) = "B4"
EvaluateRange(2) = "C4"
EvaluateRange(3) = "D4"
EvaluateRange(4) = "E7"
EvaluateRange(5) = "F7"
EvaluateRange(6) = "G7"
'Forループを回してなんらかの判断をする(今回はMsgBoxで値を表示してみた)
Dim i As Integer
For i = LBound(EvaluateRange) To UBound(EvaluateRange)
MsgBox (Evaluate(EvaluateRange(i)))
Next i
もっと効率的なやり方もあると思いますが、最初は泥臭いやり方でやってみるのが良いでしょう
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
checkベストアンサー
0
①処理の流れがあっているか
意図する動作になっていれば、結果としてあっているのでは?
意図する動作になっていないのであればどこかおかしいですね
②Sub Bookinfo(loop1 As Integer)の引数の設定の仕方は大丈夫か
引数として指定されているloop1がBookinfoの中でも宣言されていますが、何か意図している事がありますか?
変数のスコープについてすこし学ばれた方が..
③datename に値が入力されない
そもそもどのセルを指しているか確認してますか?
CellsはCells(行, 列)です
コードを見る限りループで回している
- Cells(loop1, 4)
と
- Range("B4:D4")
は等価では無いと思われますが..
動作がおかしいと思った時は、まずステップ実行してみて
datename = Cells(loop1, 4) '変数に値を入力
に処理が来ているか、Cells(loop1, 4)の値がどうなっているか確認する癖を付けるようにした方がいいです
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
2016/04/11 00:45
こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。
kei344
2016/04/11 01:26
「3の条件分岐」とありますが、質問からは抜けているようです。また、「文字列を読み取る」は、読み取ったものをどこに保存とかどうやって使うなど補足説明が必要です。質問文を編集してください。