Excel VBA質問箱 IV

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

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


11416 / 13646 ツリー ←次へ | 前へ→

【16192】文字列長の指定方法について Ark 04/7/20(火) 17:12 質問[未読]
【16196】Re:文字列長の指定方法について Asaki 04/7/20(火) 17:38 回答[未読]
【16220】Re:文字列長の指定方法について Ark 04/7/21(水) 11:00 お礼[未読]

【16192】文字列長の指定方法について
質問  Ark  - 04/7/20(火) 17:12 -

引用なし
パスワード
   度々で申し訳ありません。
皆様のお力を貸してください。

Dim ファイルオープン As Variant
Dim filename As String

Sub ファイルを開いてコピペして閉じるまで()
    Application.Dialogs(xlDialogOpen).Show    'ダイアログ表示&開くコマンド。
    ブック = ActiveWorkbook.Name

    If ファイルオープン <> False Then
    
      k = 2                    '行のスタートを指定
      nochk = 0
      Do Until Cells(k, 4).Value = ""       '(行,4)の値がnullになるまで繰り返す
        If Cells(k, 4).Value = ブック Then    '(行,4)の値がブックと一緒だったら
          nochk = 1              '重複チェックフラグを立てる
          Exit Do
        End If
        k = k + 1                '行番号を加算
      Loop
    
      If nochk = 1 Then              '重複チェックフラグが立っていたらメッセージ
        MsgBox "NO:" & filename & " そのファイルは既に選択済みです" _
        & Chr(13) & "ファイルを選択し直してください"

      Else

このような重複チェックを行っているのですが、
”ブック”に入っているファイル名だとファイル名.xlsの拡張子まで入ってしまいます。
比較対照はファイル名_01.*など、後ろに番号やら他の.docや.ppt等の拡張子が入っています。

ですので、比較するのは「ファイル名を先頭から数えて10文字まで」にしたいのですが
どのような設定をすればよいのでしょうか?

valueを他のオプションに変えるか、比較用の宣言を作るかどちらかだと思うのですが、
見当がつかない状況です。

比較用の宣言は
「重複フラグ=ActiveWorkbook.Nameの先頭より10文字」というイメージなのですが
それをVBAに解ってもらうように命令を出してあげられないです。。

【16196】Re:文字列長の指定方法について
回答  Asaki  - 04/7/20(火) 17:38 -

引用なし
パスワード
   こんにちは。

>ファイル名を先頭から数えて10文字まで
取り敢えず、中身は見てませんで、この部分だけ。
Left(ブック,10)
ではダメなのでしょうか?

【16220】Re:文字列長の指定方法について
お礼  Ark  - 04/7/21(水) 11:00 -

引用なし
パスワード
   >Left
あっ、そうだ!この指定方法があったんだ!
ご教授いただき、ありがとうございました。

が、どこかで何かの命令が足りないため
「インデックスが不明(9)」というエラーが出ていました。
こちらについてはもう一度自分でプログラムを見直したいと思います。

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