こんにちは。VBA初心者です。
エクセルファイルのシートを、いろいろ行を増やしたり計算を自動にするようにして、
最後にテキスト形式にするためのマクロをつくっております。

元のエクセルファイルの対象のシートをコピーして、新しいファイルを作成しペースト→保存→ファイルを閉じるところまでなんとかできました。
現在、下記のコードで新しいファイルは「マイドキュメント」に保存されていますが、元のエクセルファイルと同じ場所に保存したいのですが、どのようにコードを書けばよろしいでしょうか。
教えていただけますと幸いです。宜しくお願い申し上げます。

Sheets("TXT").Copy
Sheets("TXT").SaveAs FileFormat:=xlCurrentPlatformText, Filename:="今月.txt"
With Workbooks("今月.txt")
.Saved = True
.Close

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

A 回答 (1件)

ご希望かどうか?


Sheets("TXT").SaveAs FileFormat:=xlCurrentPlatformText, Filename:=ThisWorkbook.Path & "\今月.txt"
として試してみてください。
以下、参考です。

参考URL:http://www.moug.net/tech/exvba/0060050.htm
    • good
    • 1
この回答へのお礼

早速ありがとうございます。

試してみたところ、思いどおりになりました!
本当にありがとうございます。

URLも今後の参考にさせていただきます。

お礼日時:2009/05/17 17:40

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q(Win7)アイコンの縮小版表示をフォルダ毎に設定

(1)あるフォルダーにJPEG写真が入っています。
このフォルダーでは、各ファイルのアイコンを縮小版で表示させたいです。
アイコン表示は、「大」です。

(2)デスクトップにpdfなどのファイルを置いています。
デスクトップのアイコンは、縮小版で表示せず、*.pdfはPDFのアイコンで表示させたいです。

上記(1)のフォルダーから、「ツール」→「フォルダーオプション」→「表示」→「常にアイコンを表示し、縮小版は表示しない」のチェックがありますが、これをチェックすると、(1)も(2)も縮小版表示されなくなります。
チェックをはずすと、(1)も(2)も縮小版で表示されてしまいます。

(1)は、縮小版で、(2)は普通のアイコンで表示させたいのですが、どうすればよいでしょうか?
WindowsXPまでは、各フォルダー毎に設定ができたような記憶があるのですが。


OSは、Windows7(32bit)です。
クラシックテーマにしています。

Aベストアンサー

フォルダごとに縮小表示を使う、使わないということでしょうか。
その場合、設定を変更後、下のほうの適用ボタン→OKボタンではどうでしょう?
私のWin7では、こうした設定が可能です。ただし、上の方のフォルダーに適用をクリックすると、同種のファイルが有るフォルダー全てに適用されてしまいます。

QExcel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。

Sheet1のA列・B列・C列・・・にデータが入っています。
Sheet2のA列・B列・C列・・・にデータが入っています。

Sheet1のA列とSheet2のA列は、似たようなデータが入っています。
Sheet1のB列とSheet2のB列も、同様です。
C列以降のデータは、シート間で全然関係ありません。

Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、
を知るには、どうすればよいですか。
C列以降の列のデータは、比較する際に使いません。

つまり、
Sheet1のA = Sheet2のA
かつ
Sheet1のB = Sheet2のB
であるような行を知りたいのですが、

どうすればよいのでしょうか。

Aベストアンサー

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、

Sheet1 の E1 =A1&B1
Sheet2 の E1 =A1&B1
Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

QMac OS10.9のフォルダアイコンについて。

Mac OS10.9のフォルダアイコンについて。
現在OS10.3.9を使っています。以前OS9.0用のフリーウエアをダウンロードをして起動したところ、9.0用のシステムフォルダーのアイコンがそのフリーウエアのアイコンに書き換えられてしまいました。それ以来、フリーウエア本体とアイコンを削除したにもかかわらずそのアイコンが残っています。削除した時はいったん本来のシステムフォルダーのアイコンに戻るのですが、気が付くとまた書き換えられています。本来のフォルダアイコンに戻したいのでどなたか方法を教えて下さい。フリーウエアの作者の方にメールで訪ねてみたのですが返信が有りません。『がちゃぽん』とかいったタイトルだったように記憶しています。これは嫌がらせソフトウエアなのでしょうか。。。。。
困っています。アドバイスよろしくお願いします。

Aベストアンサー

念のため次のことを試してみてください

・OS9でのデスクトップ再構築(OS9でマシンを起動)
・その9.0のシステムフォルダがクラシック環境用のものなら、クラシック環境設定からデスクトップの再構築
・OSX上からプリバインディング
http://nmuta.fri.macserver.jp/terminal6.html

Q=IF(Sheet1!MX9="", "",Sheet1!MX9) で表した結果に条件付き書式を

こんにちは、エクセル2010を使っています。

A1セル
=IF(Sheet1!MX9="", "",Sheet1!MX9) B1セル =IF(Sheet1!MY9="", "",Sheet1!MY9)
と数式が入っていて、結果が 29% 36% などとなって居ます。

このセルに、【30%以上の場合は】と条件を与えても動作するどころか空白まで全てに条件が適用されてしまいます。

これを通常通り条件付き書式を与えるにはどうしたら良いでしょうか。

詳しい方、よろしくお願いいたします。

Aベストアンサー

少し面倒ですが、現状のA1、B1の計算式を変えない方法として
条件付き書式をいじってみては?

A1を選択して 条件付き書式 → 新しいルール → 数式を使用して、書式設定するセルを決定 を選択
下部に表示されたテキストボックスに、
=VALUE(A1)>=0.3 (0.3は30%の意)
と入力、設定したい書式を選択して設定する

あとは、A1のセルをコピー、B1に書式のみ貼り付けでOK

Qフォルダタスクを消したい + 規定のアイコンの画像を抽出したい

フォルダーのアイコンを変更したところ、フォルダを開くとフォルダの右側に『ファイルとフォルダのタスク』『その他』『詳細』などが出るようになってしましました。
以前も同じ失敗をしてその時は何とか消したのですが、今回は幾ら探しても消し方が分りません。
消す方法を教えていただきたいです。

もう一つは、フォルダのアイコンを自分で弄りたいと思っています。
既存のアイコンをちょっと弄るだけのつもりなのですが、既存のアイコンのデーターをどのようにして取り出したらよいのかが分りません。
『C:\WINDOWS\system32\shell32.dll』辺りにあるのは分るのですが、それ以上が分らないです。

どなたか回答してくださるととても助かります。

Aベストアンサー

タスクは
フォルダ上部のツール→フォルダオプション→全般タブの作業→従来のWindowsフォルダを使う にすれば大丈夫だと思います。
もう一つの方法としては

マイコンピュータ右クリックのプロパティ→詳細設定タブのパフォーマンスの設定→視野効果タブでカスタムに→フォルダでよく使用するタスクを使用する。のチェックを外す
で、大丈夫だと思います。
全く別物だったらすいません。左側のタスクなんで(´Д`

アイコンを取り出すとき、私は彩彩畑というフリーソフトを使っていました。Windowsのシステムアイコンも使えたと思います。他にも色々あると思いますが…一応URL貼っときますね

参考URL:http://www.hm.h555.net/~irom/ssb_1/ssb_1.htm,http://www.hm.h555.net/~irom/ssb_help/ssb_help_3.htm

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

QLAN上フォルダのワイヤー付きアイコンをなんと呼ぶのですか?

wXPのマシンに「コンテナxpーAMD」と言うファイル
w2Kのマシンに「コンテナ2kーT100」を作っています。
Explorerで確認すると
C:\Documents and Settings\Administrator\NetHood\
以下の 相手マシンのフォルダーアイコンにはワイヤーの様な物が付いています。これを何ホルダーと呼ぶのですか?
  マシン名にAMDやT100使用。CPUやマザーボード名。

Aベストアンサー

「ネットワークドライブ」や、「ネットワークフォルダ」でいいかと思います。

QExcel VBAについて質問します Set wb = Workbooks.Open(myFdr &

Excel VBAについて質問します

Set wb = Workbooks.Open(myFdr & "\" & fname) '開き,wbとする。
cnt = Worksheets.Count
For n = 1 To cnt
i = i + 1 'カウント
wb.Sheets(n).Range("A2").Copy mb.Sheets("Sheet1").Cells(i, "A") 'コピー
wb.Sheets(n).Range("D2").Copy mb.Sheets("Sheet1").Cells(i, "B") 'コピー
Next

この内容を値のコピーにするにはどうすれば良いでしょうか
よろしくお願いします。

Aベストアンサー

Open メソッドの前に、
Set mb = ThisWorkbooks
が必要です。

cnt = Worksheets.Count
実害はないけれども、
これは、cnt = wb.Worksheets.Count とします。

>値のコピーにするにはどうすれば良いでしょうか
コードを逆さまにすればよいです。

mb.Sheets("Sheet1").Cells(i, "A").Value = wb.Sheets(n).Range("A2").Value

Qアイコンを変更したフォルダをサーバーへコピーするとアイコンが戻る…

フォルダのアイコンを、フォルダ>プロパティ>アイコンの変更で、カスタムアイコン(ビットマップ画像に拡張子.icoつけたもの)に変更して、それをサーバーにコピーしたり他の端末にコピーしたら単なる普通のフォルダのアイコンに戻ってしまいます。

どうすれば変更したアイコンのまま他の端末にコピーできるのでしょうか…。誰かご存知の方、教えてください。よろしくお願いします。

OS:Windows XP

Aベストアンサー

カスタマイズ情報はアイコンを変更したフォルダ内のdesktop.iniに保存されています。

検証していませんが、次の手順でアイコンを変更すればうまくいくかもしれません。
よければ試してみてください。

(1)適当なフォルダで「ツール」→「フォルダオプション」の「表示」タブで
「すべてのファイルとフォルダを表示する」にチェックを入れます。
「保護されているオペレーションシステムファイルを表示しない」のチェックを外しま

(desktop.iniを表示するため)

(2)アイコンを変更したいフォルダにカスタムアイコン(例:hoge.ico)をコピーし、「プロパティ」で「隠しファイル」にチェックを入れます(フォルダオプションの設定を元に戻したときカスタムアイコンを非表示に)。

(3)「プロパティ」の「アイコンの変更」で(2)でコピーしたカスタムアイコン(hoge.ico)を指定します。これでフォルダ内にdesktop.iniが作成されます。

(4)desktop.iniをダブルクリックして開きます。
IconFile=・・・\hoge.ico

IconFile=hoge.ico
とファイル名だけに変更し上書き保存します。

(5)フォルダオプションの設定を元に戻します。

カスタマイズ情報はアイコンを変更したフォルダ内のdesktop.iniに保存されています。

検証していませんが、次の手順でアイコンを変更すればうまくいくかもしれません。
よければ試してみてください。

(1)適当なフォルダで「ツール」→「フォルダオプション」の「表示」タブで
「すべてのファイルとフォルダを表示する」にチェックを入れます。
「保護されているオペレーションシステムファイルを表示しない」のチェックを外しま

(desktop.iniを表示するため)

(2)アイコンを変更したいフォルダにカ...続きを読む

QExcel2013 VBA sheet1とsheet2のデータを合成してsheet3を作るには

sheet1に氏名、sheet2にその氏名の人の趣味が入っています。

新たにsheet3を作成して、
氏名1
趣味
氏名1

氏名2
趣味
氏名2

氏名3
趣味
氏名3

氏名4
趣味
氏名4

としたいです。
VBAのコードを教えて下さい。

例えば
①sheet1には
A1;1 B1;阿部 C1;あべ
A2;2 B2;佐藤 C2;さとう
A3;3 B3;山名 C3;やまな
A4;4 B4;山本 C4;やまもと

②sheet2にはその人の趣味が入っています。

A1;1  B1;釣り C1;つり
A2;空白 B2;踊り C2;おどり
A3;空白 B3;歌 C3;うた

A4;2  B4;読書 C4;どくしょ
A5;空白 B5;野球 C5;やきゅう


A6;3 B6;映画鑑賞 C6;えいがかんしょう

A7;4  B7;釣り C7;つり
A8;空白 B8;踊り C8;おどり
A9;空白 B9;歌 C9;うた

③sheet3を新に作成して

A1;1 B1;阿部 C1;あべ
A2;空白  B2;釣り C2;つり
A3;空白 B3;踊り C3;おどり
A4;空白 B4;歌 C4;うた
A5;空白 B5;阿部 C5;あべ

A6;2 B6;佐藤 C6;さとう
A7;空白 B7;読書 C7;どくしょ
A8;空白 B8;野球 C8;やきゅう
A9;空白 B9;佐藤 C9;さとう

A10;3 B10;山名 C10;やまな
A11;空白 B11;映画鑑賞 C11;えいがかんしょう
A12;空白 B12;山名 C12;やまな

A13;4 B13;山本 C13;やまもと
A14;空白  B14;釣り C14;つり
A15;空白 B15;踊り C15;おどり
A16;空白 B16;歌 C16;うた
A17;空白 B17;山本 C17;やまもと



のようにしたいです。

実際、データは、sheet1は419列、sheet2は2563列あります。

sheet1に氏名、sheet2にその氏名の人の趣味が入っています。

新たにsheet3を作成して、
氏名1
趣味
氏名1

氏名2
趣味
氏名2

氏名3
趣味
氏名3

氏名4
趣味
氏名4

としたいです。
VBAのコードを教えて下さい。

例えば
①sheet1には
A1;1 B1;阿部 C1;あべ
A2;2 B2;佐藤 C2;さとう
A3;3 B3;山名 C3;やまな
A4;4 B4;山本 C4;やまもと

②sheet2にはその人の趣味が入っています。

A1;1  B1;釣り C1;つり
A2;空白 B2;踊り C2;おどり
A3;空白 B3;歌 ...続きを読む

Aベストアンサー

こんばんは!

Sheet3にSheet1のデータを二度表示させるのがイマイチ理解できませんが、
ご質問通りにやってみました。

Sub Sample1()
Dim i As Long, lastRow As Long, myCnt As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS2.Rows(1).Insert
wS2.Range("D:D").Insert
With Worksheets("Sheet3")
.Cells.ClearContents
lastRow = wS2.Cells(Rows.Count, "B").End(xlUp).Row
Range(wS2.Cells(2, "D"), wS2.Cells(lastRow, "D")).Formula = "=IF(A2="""",D1,A2)"
For i = 1 To wS1.Cells(Rows.Count, "A").End(xlUp).Row
With .Cells(Rows.Count, "B").End(xlUp).Offset(1)
.Value = wS1.Cells(i, "B")
.Offset(, -1) = wS1.Cells(i, "A")
.Offset(, 1) = wS1.Cells(i, "C")
End With
Set c = wS2.Range("A:A").Find(what:=wS1.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
myCnt = WorksheetFunction.CountIf(wS2.Range("D:D"), wS1.Cells(i, "A"))
.Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(myCnt, 2).Value = _
c.Offset(, 1).Resize(myCnt, 2).Value
End If
'▼
.Cells(Rows.Count, "B").End(xlUp).Offset(1).Resize(, 2).Value = _
wS1.Cells(i, "B").Resize(, 2).Value
'▲
Next i
.Rows(1).Delete
wS2.Rows(1).Delete
wS2.Range("D:D").Delete
Application.ScreenUpdating = True
.Activate
End With
MsgBox "完了"
End Sub

※ コード内の▼から▲までがもう一度Sheet1のデータを表示させているコードです。
細かい検証はしていませんが、
こんな感じではどうでしょうか?m(_ _)m

こんばんは!

Sheet3にSheet1のデータを二度表示させるのがイマイチ理解できませんが、
ご質問通りにやってみました。

Sub Sample1()
Dim i As Long, lastRow As Long, myCnt As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS2.Rows(1).Insert
wS2.Range("D:D").Insert
With Worksheets("Sheet3")
.Cells.ClearContents
lastRow = ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング