こんにちは

AccessVBA初心者です。

ある一定のルールを決めたファイル名を作りたいのですが、
たとえば今日の日付が
2001/10/29なら→ 011029ITMZ.MDB

2010/10/29なら→ 101029ITMZ.MDB

などのように日付と"ITMZ.MDB"を結合して名前としたいのですが、
年は下2桁のみとなります。

日付を取得して文字列に変換し、さらに西暦の下2桁を取り出して
年(下2桁)+月+日+ITMZ.MDBとするやりかたがよくわかりません。

よろしくお願いいたします。

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

A 回答 (1件)

format(date(),"yymmdd")+"ITMZ.MDB"


じゃあだめですか?
    • good
    • 0

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

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

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

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

QEXCELにて、同一日付であれば空白にしたい

EXCELにて、同一日付であれば空白にしたい
EXCELにて、同一日付であれば空白にしたいのですが、できればVBAを使用せず実現したい。
ヒントをお願いします

Aベストアンサー

回答No2です。ダブった日付を白文字にするときにページが変わったところで空白になるのは避けたいとのことでしたらページの区切りを求める関数はありませんので、例えば1ページが49行で50行のところが次のページになるなどのことが判っていればA2セルから下方を選択してからの条件付き書式の設定で入力する式は次のようにすることでよいでしょう。

=AND(MOD(ROW(),50)<>0,A2=A1)

Q1+(1+2)+(1+2+3)....+(1+2+...+N)の計算式をVBで・・

表すにはどうしたらいいでしょうか。
もう3時間くらい格闘しているのですが、
答えを出せません。

Dim S AS LONG
DIm N As Integer

Dim i As Integer
N = Val(TextBox1.Text)

S = 0
i = 1

For i = 1 To N Step 1
S = S + i

Next

Label4.Text = Format(S, "#,##0")

で、1+2+3+...+Nはいけるのですが、
上記の式は、Nが1づつ増えていくにしたがって、
Sの値が1 4 10 20 ...となっていくために、…。

どなたか、回答していただける方がおりましたら、
非常に助かります。
よろしくお願いいたします。。

Aベストアンサー

  Dim total    As Long
  Dim index    As Integer
  Dim index2   As Integer
  Const MAX_VALUE As Integer = 3
  '
  total = 0
  For index = 1 To MAX_VALUE
    For index2 = 1 To index
      total = total + index2
    Next index2
  Next index
  '
  MsgBox (total)
------------------------
こんなカンジでしょうか。

QWORD差し込み印刷:日付の処理 - EXCELが空欄だと今日の日付が差し込まれてしまう

WORDの差し込み印刷について質問させてください。

EXCELのデータで日付を入れている列があります。この列に空欄がある(つまり日付が入力されていない)と、差し込み先のWORDのほうで、今日の日付が出てしまいます。

EXCELのデータが空欄の場合には、WORDの方に今日の日付を出さない(空欄のままにしておく)方法はありますか?

OSはWinXP, WORDとEXCELは2003を使っています。

よろしくお願いします。

Aベストアンサー

Word2002で確認したところ、質問と同じようになりました。
フィールドコードについては詳しくありませんが、消すことができました。
日付が空欄のところの差し込みフィールドでマウス右クリックしてフィールドコードの表示/非表示をクリックして表示させると
{MERGEFIELD"フィールド名"}となっていると思います。
1方法はココの”フィールド名"を削除すれば日付は表示されません。
もう一つの方法はフィールドを右クリックしてフィールドの編集を選択します。「フィールド」ダイアログボックスが現れます。
フィールドの種類から「差し込み印刷」を選択し、フィールドの名前から「If」を選択して条件式を入力する。
フィールドコードは
「If 式1 演算子 式2 Trueの場合の文字列 Falseの場合の文字列」
ここに
「If 日付のフィールド名<>"" "yyyy/mm/dd" ""」
というのを入力したところ表示されないようになりました。
日付のフィールドがブランクでない場合はyyyy/mm/dd、そうでなければブランクという条件式です
差し込みの1枚目のフィールドで条件式を入れておけば、日付空欄のところはすべて空欄にできると思います。
試しにチャレンジしてみて下さい。

Word2002で確認したところ、質問と同じようになりました。
フィールドコードについては詳しくありませんが、消すことができました。
日付が空欄のところの差し込みフィールドでマウス右クリックしてフィールドコードの表示/非表示をクリックして表示させると
{MERGEFIELD"フィールド名"}となっていると思います。
1方法はココの”フィールド名"を削除すれば日付は表示されません。
もう一つの方法はフィールドを右クリックしてフィールドの編集を選択します。「フィールド」ダイアログボックスが現れます。
...続きを読む

Q4桁の数字を A*1000+B*100+C*10+D 以外で表現したい。

A=1
B=2
C=3
D=4

のとき 
1234をA*1000+B*100+C*10+D以外で表現したいのですが
何かいい方法がないでしょうか?
4桁ならいいんですが
15、6桁を10行ぐらいコーディングしないといけないのでなえてます↓助けてください。

Aベストアンサー

No.4です。

VB2005でも問題なくできますよ。実際に確認済みです。

Dim A As Integer = 1
Dim B As Integer = 2
Dim C As Integer = 3
Dim D As Integer = 4
Dim E As integer

E = (A & B & C & D) * 1
MsgBox(E)

これで試してください。

QExcelで日付を入力したら締日を表示させる

Excelで経費の支払いの表を作ろうとしています。

A列のセルに日付を入力し、
A列に入力した日付が1日~15日までなら
B列のセルにその月の最終日の日付を
16日~31日までなら
B列に翌月の15日と自動で表示されるようにするには
どうすればいいのでしょうか?


詳しい方、教えてください。
ちなみに使用しているExcel2010です。

Aベストアンサー

ごめ。よく読んだら半月ずれてましたな。

=IF(DAY(A1)<15,DATE(YEAR(A1),MONTH(A1)+1,1)-1,DATE(YEAR(A1),MONTH(A1)+1,15))

MONTH(A1)+1で「13月」とか出てきちゃいそうですが、Excelはちゃんと「翌年1月」と計算しなおしてくれますから大丈夫です。

Q日付の年の確認方法について A1セルに2017/4/1 コンボボックスに2018/4/1 と入ってい

日付の年の確認方法について

A1セルに2017/4/1
コンボボックスに2018/4/1
と入っています。この両方の年だけ等しいか確認するには rang("a1").Format(Date, "yyyy")=コンボボックス.Format(Date, "yyyy")で大丈夫ですか。
よろしくお願いします。

Aベストアンサー

年の比較であれば、
year(セル)
です。

QEXCELの日付データの比較

EXCELの日付データについての質問です。

たとえば、あるテキストデータでH20.7.19とあったとします。
それとEXCELの日付データにもH20.7.19があったとします。

テキストデータのH20.7.19をEXCEL側に貼り付け、EXCELの日付データH20.7.19と比較させ、答え0(誤差0)を返してもらう方法はありますでしょうか?

宜しくお願いいたします。

Aベストアンサー

こんにちは
DAYS360(開始日,終了日,方式)という関数で日数の差異を
求められます。

A1にテキストデータ H20.7.19
A2にエクセルデータ H20.7.19

があったとします。
=DAYS360(A1,A2)
で差異が0で返ってきます。 0じゃ無かったら別のものですね。

方式はヨーロッパ方式(TRUE)、アメリカNASD方式(FALSE)とか
書いてありましたが、違いはようわかりませんww
付けなくてもいいかとw

適当ですが、ご参考まで^^;

Qvb2005でmdbを読み込みmdbに書き出したい

よろしくお願いします。windowsxp,access2003,vb2005express エディションを使用して、現在、勉強中です。
早速質問ですが、ADO・NETを使ってA_MDBをvb2005に読み込んで,その内容をB_MDBに書き込みたいのですがその方法が分かりません

例えば、A_MDBのA_TABLEには単価と数量が有ります。仮に10レコードがあるとします、このA_TABLEを読み込んで、単価と数量を
掛けて金額を計算し、B_MDBのB_TABLEに単価、数量、金額の各項目を書き込むという感じです。A,B両MDBは作成済です。あまり上手く
表現できませんがよろしくお願いいたします。

Aベストアンサー

http://park5.wakwak.com/~weblab/index.html

↑このへん参考にどうぞ。

Qexcel,word 印刷した日の日付

excel,word文書を印刷したとき、その印刷日の日付を印字させるためにはexcel,word各々
どのようなことをすればよかったでしょうか。

Aベストアンサー

<Excelでの編集方法>
 メニューの「ファイル」-「ページ設定」で
 「ヘッダー/フッター」タブを選択。
 上に表示したい場合は「ヘッダーの編集」ボタン。

 編集画面の上に「日付の挿入」ボタン(カレンダーみたいなボタン)があるので
 それを押せば日付入力できます

<Wordでの編集方法>
 メニューの「表示」-「ヘッダー/フッター」を選択すると
 ヘッダーとフッターが点線で囲まれます。
 お好きなほうを選択し「日付の挿入」ボタンを押せば表示されるようになりますよ。

Q全組合せの洗い出しプログラム作成に悩んでいます(ExcelVBA/AccessVBA)

0-5までの数字を使用して
3~10個の数字の組合せを作成したいと思っています。

組合せを書きだしてみたり、
数学やプログラムのページをネットで探してみたのですが
理解力不足でロジックが思いつきませんでした…。

桁数、使用数字の最大値を指定して、
最終的に配列等に持たせる事が目標です…。

3桁,使用数字の最大値2(0-2)の場合
{0,0,0}
{0,0,1}
{0,1,1}
{0,1,2}
{1,1,1}
{0,0,2}
{0,2,2}
{2,2,2}
といった具合です。(漏れていたらすいません…)

ヒントだけでもいただけたらとても助かります。
宜しくお願いいたします。

Aベストアンサー

生成するデータに抜けがありますね
000
001
002
011
012
022
111
112 ... 1)
122 ... 2)
222
といった具合になるはずです

この場合3重ループで実現可能です
for i = 0 to 2
  for j = i to 2
    for k = j to 2
      cells(nRow,1) = i & " " & j & " " & k
    next
  next
next
といった具合です

これだと桁数と使用数字が固定されてしまいます
再帰処理で記述してやれば 桁数、使用数字を可変にできると思いますよ

sub myCalc( lv as integer, m as integer, nMax as Integer, nRow as Integer, ss as string)
  if lv = 0 then
    ' 再帰の脱出条件
    Cells( nRow, 1 )= ss
    nRow = nRow + 1
    ss = left$(ss, Len(ss)-2)
  else
    dim i as integer
    for i = m to nMax
      ss = ss & i & " "
      ' 1つ下のレベルを呼び出す
      myCalc lv-1, i,nMax, nRow, ss
    next
    if len(ss) < 2 then Exit Sub
    ss = left$(ss, len( ss ) -2 )
  end if
End Sub
といった具合にしておいて
呼び出す側で
myCalc 3, 0, 5, 1, ""
といった具合にします
上記の場合 3桁 0-5を使用 1行目から 初期文字列は"" で呼び出しています

生成するデータに抜けがありますね
000
001
002
011
012
022
111
112 ... 1)
122 ... 2)
222
といった具合になるはずです

この場合3重ループで実現可能です
for i = 0 to 2
  for j = i to 2
    for k = j to 2
      cells(nRow,1) = i & " " & j & " " & k
    next
  next
next
といった具合です

これだと桁数と使用数字が固定されてしまいます
再帰処理で記述してやれば 桁数、使用数字を可変にできると思いますよ

sub myCalc( lv as integer, m as integer,...続きを読む


人気Q&Aランキング

おすすめ情報