vbaで
「Shell ("cmd /C copy """ & 」を使用し、
今日の日付と時間を名前にしたエクセルファイル( Time$ & Time$ をファイル名にして)を作成しているのですが

Date$ →2009-05-12
は、エラーになることなくファイルが作成できるのですが
Time$→16:00:24
は、↑の様に「:」が入ってしまう為エラーになってしまいます。


VBAを使って現在の「時間+日付.xls」を作成するにはどうしたらよいでしょうか?

ちなみにnow$はライブラリにすらありませんでした。
ご教授よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

 ファイル名にコロンは使えないと存じます。



Date$ & " " & Replace(Time, ":", ".")
のようにコロンをピリオドなどに変換されてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

置換すればいいのですね。ありがとうございます。

お礼日時:2009/05/12 22:58

VBAでTime関数やYear、Month,Day関数が有る。


>「Shell ("cmd /C copy """ & 」を使用し
質問者がそういうことを知らないため、珍奇なやり方になっているのでは。
>時間+日付.xls」ファイルの作成
と言う表現ではなく、エクセルファイルのファイル名を、時間+日付.xlsにしたいと表現すべきでは。
ファイル名には記号文字の中で、使えない文字があるが、それと日付の表現(特に区切りの文字)がバッチングするときは、別の文字で代用しなければならないのは常識。区切り文字をどういう文字にするかは質問者が考えること。
    • good
    • 0
この回答へのお礼

「Shell ("cmd /C copy """ & 」をは珍奇なやり方なのですね。 汗
>エクセルファイルのファイル名を、時間+日付.xlsにしたいと表現
まさしくそうです。
よく考えます。
ありがとうございます。

お礼日時:2009/05/12 23:55

以下のコードは参考になりますでしょうか?


Sub Macro1()
MsgBox WorksheetFunction.Text(Time, "hh/mm/ss")
MsgBox WorksheetFunction.Text(Now, "yy-mm-dd/hh/mm")
End Sub
ワークシートの関数を利用してみました。
    • good
    • 0
この回答へのお礼

なるほど。参考になりました。ありがとうございます。

お礼日時:2009/05/12 22:59

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QFileDialog オブジェクトでファイル名のみを取得

FileDialog オブジェクトで返すオブジェクトを参照すると
どうしてもファイルパスを取得する変数しか取得できません。

FileDialog オブジェクトで選択したファイルのファイル名のみを取得するにはどうしたらよいでしょうか。

ExcelVBAです。よろしくお願いします。

Aベストアンサー

Dir関数を使ってはいかがでしょう?

MsgBox fname & vbCrLf & Dir(fname)

QVBA Access 指定した日付から、特定の日付範囲内のデータを取得する

初めての質問になります。

現在Access2010での開発作業を行っておりますが、
以下の作業部分にて詰まっております。
お分かりになる方がいらっしゃいましたら、ご助力を頂けますと幸いでございます。

やりたい事
Formに配置したTextBoxに入力された日付から、
Table[Point]内の日付範囲を絞り、入力された日付の範囲内のデータを取得する。

ただし、範囲指定された日付のデータがTable内に複数あり、入力された日付の範囲がその条件を満たすデータだけを取得する。

かなり、説明が分かりづらく申し訳ございません。
以下詳細になります。

Table[Point]
Sday 、 Eday 、point 、登録日
2/1 、 2/28 、 2500 、 1/31
2/14 、 2/16 、 3000 、 2/2

上記データから、入力された日付が2/17だった場合に
Pointが2500のデータを取得したい。

大変、分かりづらい説明になってしまいましたが、
お分かりになる方がいらっしゃいましたらよろしくお願い致します。

初めての質問になります。

現在Access2010での開発作業を行っておりますが、
以下の作業部分にて詰まっております。
お分かりになる方がいらっしゃいましたら、ご助力を頂けますと幸いでございます。

やりたい事
Formに配置したTextBoxに入力された日付から、
Table[Point]内の日付範囲を絞り、入力された日付の範囲内のデータを取得する。

ただし、範囲指定された日付のデータがTable内に複数あり、入力された日付の範囲がその条件を満たすデータだけを取得する。

かなり、説明が分かりづらく申...続きを読む

Aベストアンサー

フォームの値から
Table[Point]のSdayからEdayの期間に該当するデータを抽出するということでいいのでしょうか?

Sdayの条件を<=[Forms]![フォーム名]![テキストボックス名]
Edayの条件を>=[Forms]![フォーム名]![テキストボックス名]

QAccessのOLEオブジェクトのファイル名/更新日時をフォームに表示

よろしくお願い致します。
AccessのOLEオブジェクト(画像ファイル等)を、アイコンでフォームに表示させているのですが、同時にファイル名とそのファイルの作成/更新日時を表示させたく思うのですが、可能でしょうか?
基本的な質問で申し訳ありません。
不足している情報がありましたら御質問ください。
よろしくお願い致します。

Aベストアンサー

Label1・2・3をフォームに用意してLabelに表示させるようにするには
参照設定でMicrosoftScriptingRuntime の参照にチェックが必要。
下記でできるはずなのですが

Dim Ocn   As New FileSystemObject
Dim OcnFile As File
      Set OcnFile = Ocn.GetFile(フルパス\ファイル名.拡張子")
      Label1.Caption = "ファイル名:" &OcnFile.Name
      Label2.Caption = "作成日時:" & OcnFile.DateCreated
      Label3.Caption = "最終更新日時:" & OcnFile.DateLastModified
  Set OcnFile = Nothing

QACCESS97:VBAでテーブル作成したい

Access97を利用しています。
VBAでテーブル作成クエリーを、SQL文で直接記述しています。
書き方としては、SELECT 列名 INTO テーブル名 IN DBのパス
でいいと思うのですが、例えば会社の部門コードでループさせて、
部門の名前のついたテーブルを作成しようと思います。
さて、テーブル名やDBのパスをパラメータで渡すことは可能なのでしょうか?

うまくいかないのですが、もともとムリなことをやろうとしているのでしょうか?

Aベストアンサー

>VBAでテーブル作成クエリーを、SQL文で直接記述しています。

であれば、SQL文を動的に変化させることで対応可能なのではないでしょうか。

例えばこんな感じ

Sub TEST1()
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim StSQL1 As String, StSQL2 As String

Set DB = CurrentDb
StSQL1 = "select 部門コード,部門名 from 部門マスタ"
Set RS = DB.OpenRecordset(StSQL1)

Do Until RS.EOF
  StSQL2 = "SELECT フィールド1, フィールド2 INTO " & RS!部門名 & " FROM テーブル名"
  DB.Execute StSQL2
  RS.MoveNext
Loop

End Sub

QFileMakerで読み込んだファイル名の自動入力

当方デザイン関係の会社に勤務しています。
FileMakerを使って、作成済のデザインのJPEGデータの管理をしています。
JPEGデータには、会社での管理番号をつけて保存し、それをオブジェクトフィールドに挿入しています。
FileMakerでもFinderからでも管理しやすいように、FileMaker上に「ファイル名」というフィールドを作成し、JPEGのファイル名を入力しています。
手順としてはFinder上でJPEGのファイル名をコピーし、「ファイル名」フィールドにペーストしています。
しかし、入力するデザインの点数(レコード数)が多いと、いちいちFinderとFileMakerを行ったり来たりしなければならず、またたまに入力ミスが発生することもあります。
オブジェクトフィールドに読み込んだJPEGファイルのファイル名を、「ファイル名」フィールドに自動入力化する方法はないでしょうか?

当方のPC環境はiMac、OS X10.6、FileMaker Ver10を使用しています。
ご回答のほど、よろしくお願いします。

Aベストアンサー

2行目がファイル名だけということではないですよね。
計算式はいろいろありそうですけど
=GetValue ( Substitute (オプジェクト ; "/" ; "¶" ) ; ValueCount ( Substitute (オプジェクト ; "/" ; "¶" ) ) )
とかはどうですか。オブジェクトはオブジェクトフィールドのことです。
オブジェクトフィールド内の「/」全部を改行に変更して最後の行の値を
取得する式です。ファイル名に「/」があるとダメですけど。

QVBA:2つの異なるシートからグラフを作成する

VBA初心者です。(はじめてから3日目。。。)
もしかすると、すごい簡単なことなのかもしれなくて申し訳ないのですが、質問させてください。

二つの異なるシートのデータを使って、円グラフを作製しようとしています。
ですが、「アプリケーション定義またはオブジェクト定義のエラー」が出てしまいます。
どこが間違っているのかをご教授願えませんでしょうか。
よろしくお願いします。


Sub graph()
Charts.Add
With ActiveChart
.ChartType = xlPie
.SeriesCollection(1).XValues = Worksheets(1).Range(Cells(2, 3), Cells(2, 5))
.SeriesCollection(1).Values = Worksheets(2).Range(Cells(3, 2), Cells(3, 4))
.SeriesCollection(1).Name = Worksheets(1).Cells(1, 1)
.Location where:=xlLocationAsObject, Name:="sheet3"
End With

End Sub

ちなみに、各セルにはちゃんとデータが入っております。
よろしくお願いいたします。

VBA初心者です。(はじめてから3日目。。。)
もしかすると、すごい簡単なことなのかもしれなくて申し訳ないのですが、質問させてください。

二つの異なるシートのデータを使って、円グラフを作製しようとしています。
ですが、「アプリケーション定義またはオブジェクト定義のエラー」が出てしまいます。
どこが間違っているのかをご教授願えませんでしょうか。
よろしくお願いします。


Sub graph()
Charts.Add
With ActiveChart
.ChartType = xlPie
.Series...続きを読む

Aベストアンサー

元のコードをなるべく変えないように
書き換えてみました。
以下のようにすれば、とりあえず動きます。

Sub graph()
With Charts.Add
.ChartType = xlPie
.Location where:=xlLocationAsObject, Name:="Sheet3"
End With
With ActiveChart
'仮のSeriesCollectionを設定
.SeriesCollection.Add Source:=Worksheets(1).Range("A1:B2")
.SeriesCollection(1).XValues = Worksheets(1).Range(Worksheets(1).Cells(2, 3), Worksheets(1).Cells(2, 5))
.SeriesCollection(1).Values = Worksheets(2).Range(Worksheets(2).Cells(3, 2), Worksheets(2).Cells(3, 4))
.SeriesCollection(1).Name = Worksheets(1).Cells(1, 1)
End With
End Sub

元のコードをなるべく変えないように
書き換えてみました。
以下のようにすれば、とりあえず動きます。

Sub graph()
With Charts.Add
.ChartType = xlPie
.Location where:=xlLocationAsObject, Name:="Sheet3"
End With
With ActiveChart
'仮のSeriesCollectionを設定
.SeriesCollection.Add Source:=Worksheets(1).Range("A1:B2")
.SeriesCollection(1).XValues = Worksheets(1).Range(Worksheets(1).Cells(2, 3), Worksheets(1).Cells(2, 5))
.SeriesCollection(1).Values = Worksheets(2).Range...続きを読む

Qワードで画像をドロップするとファイル名表示される

すいません。教えてください。ワード2000を使用しているのですが、画像ファイルをドロップして持ってくると普通なら画像が表示されるのに、ファイル名が表示されます。その現象は一つのファイルだけではなく、総ての画像ファイルがファイル名表示になります。また、そのファイル名をクリックすると、どうやら、埋め込みオブジェクトになっているようです。コピペでは正常に表示されるのですが、ドロップすると駄目です。この設定の解除の仕方知っている人がいたら教えてください。

Aベストアンサー

オブジェクトパッケージとして張り付いているということであれば、
↓はアクセスでの例ではありますが
ファイルの関連付けが OLE サーバー を持たないものに変更されているということではありませんでしょうか。
http://office.microsoft.com/ja-jp/access/HA011513811041.aspx

Qエクセル2010 VBA Date型のグラフについて

VBAを使用し、折れ線グラフを作成してるのですが、Date型の日時を横軸を表示しようとしても、同じ時刻で1つしか表示されません。Date型はグラフに出来ないのでしょうか。

データ1:2015/07/08 11:22:01
データ2:2015/07/08 11:22:02
データ3:2015/07/08 11:22:03

出力した横軸は1本で、2015/07/08 00:00:00 となってしまう。

Aベストアンサー

軸の種類をテキスト軸に設定してみてください。
(例1)
ActiveChart.Axes(xlCategory).CategoryType = xlCategoryScale

Qファイル名にドットを使ったファイルのインポート(ACCESSマクロ)

Accessのマクロを作成しています。
ファイルを開くダイアログから複数ファイルを選択してCSVファイルをインポートするマクロを書きました。(最後に抜粋を記載します)
インポートの行はこうなっています。
DoCmd.TransferText acImportDelim, , "traffic", varFname, True

ファイル名に拡張子直前以外にドットを含むファイル名だと以下のエラーとなります。
実行時エラー '3011'
オブジェクト'ドットを含むファイル名'が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。

余分なドットさえ含まなければ、50ファイル、7MBのインポートも問題ありません。

わけあってファイル名は変更できません。
ファイル名にドットを含む場合のインポートの書き方を教えてください。

宜しくお願い致します。



===以下、抜粋===
'[ファイルを開く]ダイアログボックスを作成
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)

'[ファイルを開く]ダイアログボックスの初期設定
dlgOpen.AllowMultiSelect = True
dlgOpen.Filters.Clear
dlgOpen.Filters.Add "CSV", "*.csv"
dlgOpen.InitialFileName = CurrentProject.Path

'[ファイルを開く]ダイアログボックスを表示
ret = dlgOpen.Show

'[キャンセル]ボタンを選択したときは、プロシージャを終了
If ret = 0 Then
Exit Function
End If

'カレントデータベースに接続
Set db = CurrentDb

'lineテーブルからレコードを取得
Set rs = db.OpenRecordset("line", dbOpenDynaset)

'単数または複数選択されたファイル分だけ処理する
For Each varFname In dlgOpen.SelectedItems
'CSVファイルをインポートする
DoCmd.TransferText acImportDelim, , "traffic", varFname, True

Accessのマクロを作成しています。
ファイルを開くダイアログから複数ファイルを選択してCSVファイルをインポートするマクロを書きました。(最後に抜粋を記載します)
インポートの行はこうなっています。
DoCmd.TransferText acImportDelim, , "traffic", varFname, True

ファイル名に拡張子直前以外にドットを含むファイル名だと以下のエラーとなります。
実行時エラー '3011'
オブジェクト'ドットを含むファイル名'が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを...続きを読む

Aベストアンサー

TransferTextの仕様をかえることはできませんので
Recordset等をつかって自力でインポートするか、
一時的にファイル名を変えてインポート後に戻すか、
のどちらかになるのではないでしょうか。

QエクセルVBAで作成した別ブックにVBAを記述したい

VBAで別ファイルの作成は下記で出来ているのですが、出来上がったファイルにVBAを記述する方法がわかりません。
具体的には一番下のSub TEST()を新しいブックの標準モジュールに記述したいのと、sheet1に
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "ChangeTEST"
End Sub
を入れたいです。
また
Private Sub Workbook_Open()
MsgBox "OpenTEST"
End Sub
も入れたいのです。
どうぞご教示ください。

Sub 複製()
Dim wb As Workbook, sc As Integer
sc = Application.SheetsInNewWorkbook

Application.SheetsInNewWorkbook = 1
Set wb = Workbooks.Add
Application.SheetsInNewWorkbook = sc

wb.Sheets("Sheet1").Select
ThisWorkbook.Sheets("Sheet1").Cells.Copy
wb.Sheets("Sheet1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

ActiveSheet.Buttons.Add(123, 195, 68.25, 15).Select
Selection.OnAction = "TEST"
Selection.Characters.Text = "TEST"
ActiveWorkbook.Close
ThisWorkbook.Activate
Sheets("Sheet1").Select
End Sub

Sub TEST()
MsgBox "TEST!!"
End Sub

よろしくお願いします。

VBAで別ファイルの作成は下記で出来ているのですが、出来上がったファイルにVBAを記述する方法がわかりません。
具体的には一番下のSub TEST()を新しいブックの標準モジュールに記述したいのと、sheet1に
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "ChangeTEST"
End Sub
を入れたいです。
また
Private Sub Workbook_Open()
MsgBox "OpenTEST"
End Sub
も入れたいのです。
どうぞご教示ください。

Sub 複製()
Dim wb As Workbook, sc As Integer
sc = Application....続きを読む

Aベストアンサー

わたしも前前からやってみたいと思っていたので、ネットを検索して調べてみました。
こんな感じで出来るようです。

'マクロ挿入
With wb.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
.InsertLines 1, "Private Sub Workbook_Open()"
.InsertLines 2, ""
.InsertLines 3, "   Msgbox""ブックが開かれましたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"
End With

With wb.VBProject.VBComponents.Item("Sheet1").CodeModule

.InsertLines 1, "Private Sub Worksheet_Change(ByVal Target As Range)"
.InsertLines 2, ""
.InsertLines 3, " MsgBox ""セルの値が変更されましたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"

End With

wb.VBProject.VBComponents.Add (1) 'Module1挿入
With wb.VBProject.VBComponents.Item("Module1").CodeModule

.InsertLines 1, "Sub TEST()"
.InsertLines 2, ""
.InsertLines 3, "   Msgbox""TESTしたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"

End With

わたしも前前からやってみたいと思っていたので、ネットを検索して調べてみました。
こんな感じで出来るようです。

'マクロ挿入
With wb.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
.InsertLines 1, "Private Sub Workbook_Open()"
.InsertLines 2, ""
.InsertLines 3, "   Msgbox""ブックが開かれましたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"
End With

With wb.VBProject.VBComponents.Item("Sheet...続きを読む


人気Q&Aランキング

おすすめ情報