
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>aaaaaaaaaaYYYYMMDDHHNNSS.csv
>aが10個です
修正しました。
Public Sub ブック名転記()
Dim ws As Worksheet
Dim wrow As Long
Dim lastrow As Long
Dim ret As Boolean
Set ws = ActiveSheet
lastrow = ws.Cells(Rows.Count, "C").End(xlUp).Row
ws.Range("A2").Value = ""
For wrow = 2 To lastrow
ret = CheckName(ws.Cells(wrow, "C").Value)
If ret = True Then
ws.Range("A2").Value = ws.Cells(wrow, "C").Value
Exit For
End If
Next
If ws.Range("A2").Value = "" Then
MsgBox ("aaaaaaaaaaYYYYMMDDHHNNSS.csv 形式のファイルはありません")
Exit Sub
End If
Dim book_name As String
Dim sheet_name As String
book_name = ws.Range("A2").Value
sheet_name = ws.Range("A4").Value
MsgBox (book_name)
MsgBox (sheet_name)
End Sub
Private Function CheckName(ByVal name As String) As Boolean
CheckName = False
'28文字でないならエラー
If Len(name) <> 28 Then Exit Function
'先頭10文字が aaaaaaaaaa でないならエラー
If Left(name, 10) <> "aaaaaaaaaa" Then Exit Function
'末尾の4文字が .csv(大文字可) でないならエラー
If LCase(Right(name, 4)) <> ".csv" Then Exit Function
'YYYYMMDDHHNNSSが日付・時刻として正しくないならエラー
Dim dt As String
Dim date_time As String
dt = Mid(name, 11, 14)
If IsNumeric(dt) = False Then Exit Function
date_time = Left(dt, 4) & "/" & Mid(dt, 5, 2) & "/" & Mid(dt, 7, 2) & " " & Mid(dt, 9, 2) & ":" & Mid(dt, 11, 2) & ":" & Mid(dt, 13, 2)
If IsDate(date_time) = False Then Exit Function
CheckName = True
End Function
No.4
- 回答日時:
>ちなみに
>aaaaaaaaaa20250420180001.xls
>※aは10個 変更
>の変更につき、以下コードを、変更しましたが動きませんでした
>他、変更する所があれば教えて下さい
修正しました。
Public Sub ブック名転記()は、
MsgBox ("aaaaaaaaaaYYYYMMDDHHNNSS.xlsx 形式のファイルはありません")
の行のみ修正しています。
Private Function CheckName(ByVal name As String) As Boolean
は、全面的に変更しています。
-----------------------------------------
Public Sub ブック名転記()
Dim ws As Worksheet
Dim wrow As Long
Dim lastrow As Long
Dim ret As Boolean
Set ws = ActiveSheet
lastrow = ws.Cells(Rows.Count, "C").End(xlUp).Row
ws.Range("A2").Value = ""
For wrow = 2 To lastrow
ret = CheckName(ws.Cells(wrow, "C").Value)
If ret = True Then
ws.Range("A2").Value = ws.Cells(wrow, "C").Value
Exit For
End If
Next
If ws.Range("A2").Value = "" Then
MsgBox ("aaaaaaaaaaYYYYMMDDHHNNSS.xlsx 形式のファイルはありません")
Exit Sub
End If
Dim book_name As String
Dim sheet_name As String
book_name = ws.Range("A2").Value
sheet_name = ws.Range("A4").Value
MsgBox (book_name)
MsgBox (sheet_name)
End Sub
Private Function CheckName(ByVal name As String) As Boolean
CheckName = False
'29文字でないならエラー
If Len(name) <> 29 Then Exit Function
'先頭10文字が aaaaaaaaaa でないならエラー
If Left(name, 10) <> "aaaaaaaaaa" Then Exit Function
'末尾の5文字が .xlsx(大文字可) でないならエラー
If LCase(Right(name, 5)) <> ".xlsx" Then Exit Function
'YYYYMMDDHHNNSSが日付・時刻として正しくないならエラー
Dim dt As String
Dim date_time As String
dt = Mid(name, 11, 14)
If IsNumeric(dt) = False Then Exit Function
date_time = Left(dt, 4) & "/" & Mid(dt, 5, 2) & "/" & Mid(dt, 7, 2) & " " & Mid(dt, 9, 2) & ":" & Mid(dt, 11, 2) & ":" & Mid(dt, 13, 2)
If IsDate(date_time) = False Then Exit Function
CheckName = True
End Function
大変、申し訳ございません。拡張子を間違っていました
お手すきな時、教えて下さい。宜しくお願いします
aaaaaaaaaaYYYYMMDDHHNNSS.csv
aが10個です
No.3
- 回答日時:
こんにちは
スピル機能が使えるバージョンなら、関数でも可能です。
A2セルに
=LET(a,REGEXEXTRACT(C2:C11,"^売上一覧[0-9]{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9]\.xls(x)?$"),INDEX(FILTER(a,NOT(ISERROR(a)),""),1))
とか。
日付、時刻のチェックを緩くしても良ければ、
=LET(a,REGEXEXTRACT(C2:C11,"^売上一覧[0-9]{14}\.xls(x)?$"),INDEX(FILTER(a,NOT(ISERROR(a)),""),1))
でも可能かと。
関数でのご指導ありがとうございます
質問なのですが、自宅パソコン→サブスクExcelにて普通にできましたが
他のパソコンで実施したら、出来ませんでした→関数の所に緑三角→エラーインジケーターがでます、バージョンは、以下です
以下バージョンでも使えるようにする
アドバイスありまたら、お願いします
バージョン
Microsoft 365 Apps for enterprise
No.2
- 回答日時:
以下のようにしてください
A2のファイル名は変数book_name に格納、
A4のシート名は変数sheet_name に格納しています。
それぞれ、メッセージボックスに表示しています。
Option Explicit
Public Sub ブック名転記()
Dim ws As Worksheet
Dim wrow As Long
Dim lastrow As Long
Dim ret As Boolean
Set ws = ActiveSheet
lastrow = ws.Cells(Rows.Count, "C").End(xlUp).Row
ws.Range("A2").Value = ""
For wrow = 2 To lastrow
ret = CheckName(ws.Cells(wrow, "C").Value)
If ret = True Then
ws.Range("A2").Value = ws.Cells(wrow, "C").Value
Exit For
End If
Next
If ws.Range("A2").Value = "" Then
MsgBox ("売上一覧YYYYMMDDHHNNSS.xlsx 形式のファイルはありません")
Exit Sub
End If
Dim book_name As String
Dim sheet_name As String
book_name = ws.Range("A2").Value
sheet_name = ws.Range("A4").Value
MsgBox (book_name)
MsgBox (sheet_name)
End Sub
Private Function CheckName(ByVal name As String) As Boolean
CheckName = False
'23文字でないならエラー
If Len(name) <> 23 Then Exit Function
'先頭4文字が 売上一覧 でないならエラー
If Left(name, 4) <> "売上一覧" Then Exit Function
'末尾の5文字が .xlsx(大文字可) でないならエラー
If LCase(Right(name, 5)) <> ".xlsx" Then Exit Function
'YYYYMMDDHHNNSSが日付・時刻として正しくないならエラー
Dim dt As String
Dim date_time As String
dt = Mid(name, 5, 14)
If IsNumeric(dt) = False Then Exit Function
date_time = Left(dt, 4) & "/" & Mid(dt, 5, 2) & "/" & Mid(dt, 7, 2) & " " & Mid(dt, 9, 2) & ":" & Mid(dt, 11, 2) & ":" & Mid(dt, 13, 2)
If IsDate(date_time) = False Then Exit Function
CheckName = True
End Function
すごい、コードの教授ありがとうございます
うまく、動きました
ちなみに
aaaaaaaaaa20250420180001.xls
※aは10個 変更
の変更につき、以下コードを、変更しましたが動きませんでした
他、変更する所があれば教えて下さい
CheckName = False
'23文字でないならエラー
If Len(name) <> 28 Then Exit Function
'先頭4文字が 売上一覧 でないならエラー
If Left(name, 10) <> "aaaaaaaaaa" Then Exit Function
'末尾の5文字が .xlsx(大文字可) でないならエラー
If LCase(Right(name, 4)) <> ".csv" Then Exit Function
No.1
- 回答日時:
補足要求です。
ファイル名は、
売上一覧YYYYMMDDHHSS.xls 形式
となっていますが、
実際の例は、
売上一覧YYYYMMDDHHNNSS.xlsx 形式です。
①正しい拡張子は、xlsなのかそれともxlsxなのかが不明です。(もしくは両方とも正しい)
②YYYYMMDDHHSSはYYYYMMDDHHNNSSの誤りと理解して良いでしょうか。(NNは分)
1→YYMMDDHHNNSS
→14ケタです→こちらの間違いです
2 xlsx yahoo.co.jp通常のExcel拡張子です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) 【マクロ】毎回、ファイル名が変わるファイルへの 文字列の転記 2 2024/05/02 14:17
- Excel(エクセル) VBA 複数ファイルの同じ項目を一行に合計したいです 4 2023/12/13 18:23
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) 【マクロ】その時、その時で変わる範囲を、フォルダの違う別ブックへ転記する為には ※参考画像あり 3 2024/05/11 10:33
- Excel(エクセル) 【マクロ】顧客番号にて一致させ、情報を表へ上書きする為には 1 2024/05/19 09:16
- Excel(エクセル) 【マクロ】2回実行したら、エラーにならずに、既に実行済みメッセージを出したい 2 2024/07/01 23:17
- Excel(エクセル) 【関数】【マクロ】データの転記の方法について 2 2023/07/26 15:22
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Excel(エクセル) エクセルのファイルにリンクを貼る方法 4 2023/06/30 11:09
このQ&Aを見た人はこんなQ&Aも見ています
-
算術演算子「¥」の意味について
Visual Basic(VBA)
-
【マクロ】開いているブックの名前を取得した後、名前をセルに1つづつ入力するには?
Visual Basic(VBA)
-
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
-
4
VBAの「To」という語句について
Visual Basic(VBA)
-
5
【マクロ】変数を使った、文字の種類の変更にて、エラーとなる。
Visual Basic(VBA)
-
6
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
7
vbaマクロについて
Visual Basic(VBA)
-
8
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
9
VBA 最終行の取得がうまくいかず上書きされてしまいます。
Visual Basic(VBA)
-
10
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
11
(EXCEL超初心者)EXCELの関数(またはマクロ)で質問です。
Visual Basic(VBA)
-
12
エクセルのVBAコードについて教えてください。
Visual Basic(VBA)
-
13
ダブルクリックで貼り付けた画像からリンクのみ削除し、画像を残したい。
Visual Basic(VBA)
-
14
エクセルVBA 検索結果を隣のシートの最終行に転記したい。
Visual Basic(VBA)
-
15
【マクロ】モジュール変数の記述時、Callにて、呼び出されたプロシージャから実行するとエラーとなる?
Visual Basic(VBA)
-
16
改行文字「vbCrLf」とは
Visual Basic(VBA)
-
17
エクセルの改行について
Visual Basic(VBA)
-
18
条件付書式設定にて、本日の日付を条件として、2行分にセルに色を付けるには?
Excel(エクセル)
-
19
【マクロ】並び替えの範囲が、そのつど、変わる場合の範囲指定の方法について
Visual Basic(VBA)
-
20
Vba セルの4辺について罫線が有るかどうか調べたいのですが
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Google ドライブに意図しないフ...
-
拡張子sfvってなんですか?
-
【マクロ】売上一覧YYYYMMDDHHS...
-
"~$[ファイル名].xlsx"というフ...
-
cerファイル、pfxファイルの基...
-
ChatGPT excel
-
メールに添付ファイル(エクセ...
-
VBA:ユーザーフォームのマルチ...
-
FlukeのLANテスター flwファイ...
-
拡張子TKM
-
「最小化」したファイルが元の...
-
VBA 数値を文字列として貼付したい
-
A4ファイルを綺麗に並べる方法...
-
SDカード、ファイル数の上限...
-
ギガファイル便で送ったzipファ...
-
スマホアプリのファイルマネー...
-
LinkStation - .trashフォルダ...
-
BVE5で湖西線をプレイしたい
-
ファイルシステムがNTFSだとexF...
-
EXCEL2010でロータスのファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Google ドライブに意図しないフ...
-
VBA 数値を文字列として貼付したい
-
VBA:ユーザーフォームのマルチ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
メールに添付ファイル(エクセ...
-
cerファイル、pfxファイルの基...
-
ChatGPT excel
-
AUTOCAD
-
「最小化」したファイルが元の...
-
ISO9001
-
plgファイルの開き方
-
拡張子sfvってなんですか?
-
開かなくなった引き出しの開け方
-
WPSスプレッドシートでエラー。...
-
A4ファイルを綺麗に並べる方法...
-
BVE5で湖西線をプレイしたい
-
"~$[ファイル名].xlsx"というフ...
-
FlukeのLANテスター flwファイ...
-
ギガファイル便で送ったzipファ...
-
「ファイルをロックできません...
おすすめ情報