アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel一覧表をマクロで作成しています。
色々探して見つけたマクロを少し改良しようと思いましたが
初心者なのでなかなか思いどおりに行きません(T~T)
すみませんがアドバイスをお願いします。
~環境~
win XP Excel2000 です。
~内容~
セル上のフルパス(B,1)を指示をし条件を付け
フォルダーを選択(2コまで)と言ったマクロを
作成使用と思っています。

 A  B  C  D  E
1   @パス
2     条件
3     フォルダー1
4     フォルダー2
5
6 以下記載

解らないところに"*"を付けています。

~コード~
Sub ファイル名一覧()
'マクロ実行画面の凍結
Application.ScreenUpdating = False
'変数宣言
Dim Path As String←*ここの部分追加しています。
Dim FileName As Variant '・・・ファイル名を格納
Dim FOLDER(2) As Variant
Dim x As Integer '・・・FOLDER(x)とし検索するフォルダを更新する変数
Dim Gyou As Integer, LastGyou As Integer '・・・ファイル名を入力する行(増えるから変数)
Dim 条件 As Variant

'パス格納
Path = Range("B2")←*ここの部分追加しています。
If Path = "" Then Exit Sub←*ここの部分追加しています。

'定数宣言
Const PAS As Variant = Path '・・・フォルダの場所
↑*ここの部分が原因?"定数式必要です。"でます(T~T)

Const Retu As Integer = 2 '・・・ファイル名を入力する列
'変数の初期値設定
x = 1
Gyou = 6 '・・・ファイル名を入力する開始行
FOLDER(1) = Range("D3") '・・・検索するフォルダ(1)
FOLDER(2) = Range("D4") '・・・検索するフォルダ(2)
'条件の格納
条件 = Cells(2, 4)
  ~~以下省略~~
長々と書いてしまい申し訳ございません。宜しくお願いします。

A 回答 (2件)

constでは値として変数を使用できません


>Const PAS As Variant = Path '・・・フォルダの場所
Const PAS As Variant = "c:\xxx\ooo\"

しかし
>Const PAS As Variant = Path
とする意味がわかりません
そのまま、Pathを使用するか
Dim PAS As String
PAS = Range("B2").Value
としては如何でしょう?

変数Pathですが
Thisworkbook.Path
のPathと紛らわしいので使用しない方が良いと思います

参考まで

この回答への補足

お返事が遅れまして申し訳ございません。
ご回答有り難う御座います。

>しかし
>>Const PAS As Variant = Path
>とする意味がわかりません
すみません、初心者なので意味も無く何となく組んでました。

>constでは値として変数を使用できません
はい、そうですね。先に調べてから質問すれば良かったのですが
間違い自体が解らなかったのでそのまま質問してみました。

>変数Pathですが
>Thisworkbook.Path
>のPathと紛らわしいので使用しない方が良いと思います
ご指導有り難うございます。
Pathは使わずに
>Dim PAS As String
>PAS = Range("B2").Value
を使う事にしました。

ただ、下記の様に修正しましたが表示されないのです。
ご面倒でなければもう一度ご指導の程宜しくお願いします。

Sub ファイル名一覧()
'マクロ実行画面の凍結
Application.ScreenUpdating = False
'変数宣言
Dim PAS As String
Dim FileName As Variant '・・・ファイル名を格納
Dim FOLDER(2) As Variant
Dim x As Integer '・・・FOLDER(x)とし検索するフォルダを更新する変数
Dim Gyou As Integer, LastGyou As Integer '・・・ファイル名を入力する行(増えるから変数)
Dim 条件 As Variant

'定数宣言
PAS = Range("B2").Value
Const Retu As Integer = 2 '・・・ファイル名を入力する列
 ~~以下省略~~

以上、宜しくお願いします。

補足日時:2009/11/02 12:55
    • good
    • 0

>ただ、下記の様に修正しましたが表示されないのです。


これは私にもわかりません
質問に
>解らないところに"*"を付けています。
と、ありますので"*"のみの添削しかしていません

マクロをすべてアップして戴かないと、これ以上は無理です
    • good
    • 0
この回答へのお礼

ご連絡が遅くなり申し訳ございません。

アドバイス有り難う御座います。
>Dim PAS As String
>PAS = Range("B2").Value
を参考に考えた結果
Dim PAS As Variant
PAS = Cells(1, 2)
で動きました。
あなた様のアドバイスがなければ完成して
いなかったと思います。
本当に有り難う御座います。

お礼日時:2009/11/04 10:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!