人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

EXCEL VBAの質問です。
EXCELのシートに文字データがあります。
それをコピーしてnotepadに貼り付けて
名前をつけて保存までを自動化したいのです。
Shellを使うような記述をWEB上で見つけましたがうまくいきません。
EXCEL2000をXPHOMEで使用しています。

サンプルコードをお教えください。
URLは不要です。

●質問者: okamotona
●カテゴリ:コンピュータ 学習・教育
✍キーワード:Excel URL VBA Web コピー
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● きゃづみぃ
●10ポイント

http://www.hatena.ne.jp/1107746594#

人力検索はてな - EXCEL VBAの質問です。 EXCELのシートに文字データがあります。 それをコピーしてnotepadに貼り付けて 名前をつけて保存までを自動化したいのです。 Shellを使うような記述..

ただ単にテキストファイルに出力ということでいいのでしょうか?

dim a as string

dim ifno as integer

a=Range(”A1”)

ifno = FreeFile

Open ”file.txt” For output As #ifno

Print #ifno,a

close #ifno

こんな感じで どうでしょうか?

◎質問者からの返答

勉強になりました。

確かに動作しました。

追加です。これから回答いただける方は、

ある範囲(例えばセルのA1〜A30)までを

吐き出すコードをお教えください。


2 ● きゃづみぃ
●10ポイント

http://www.hatena.ne.jp/awindow?

>ある範囲(例えばセルのA1〜A30)までを

a=Range(”A1”)

a=Range(”A1:A30”)

とすれば、A1からA30までとなります。

となりの列との区切りは タブとなります。

この場合は、行が違うだけなので 改行になりますが、タブを カンマにするなどしたい場合は

Replace関数を使ったらいいでしょう。

◎質問者からの返答

うーむ 型が一致しませんと怒られちゃいました。

何か私がまずいことをしているような・・・

もう少し回答をお待ちしております。


3 ● hawkplume
●5ポイント

http://www.hatena.ne.jp/

はてな

dim a as string

Dim a As Range

と変更して、

Print #ifno,a

の箇所を

Dim y As Integer

Dim x As Integer

For y = 1 To a.Rows.Count

For x = 1 To a.Columns.Count

Print #ifno, a.Cells(y, x);

If x <> a.Columns.Count Then

Print #ifno, ”,”;

End If

Next x

Print #ifno, ””

Next y

に修正、でどうでしょう?

かなりベタな方法ですが。

区切文字をタブにしたい場合は、

Print #ifno, ”,”;

の箇所を

Print #ifno, Chr(9);

に修正すれば、タブ区切となるかと。

◎質問者からの返答

よくわかりません(涙)

私の勉強不足です。


4 ● SigZ
●5ポイント

http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGnrlHowToAttach...

外部テキストファイルとの接続方法

shellでnotepadを開いても、保存するところまでは自動化できないので、おおよそはtakntさんの回答でいいと思います。ただ、printステートメントで書き込むオブジェクトは String じゃなくちゃ駄目じゃないんですかね。>型不一致

ということでサンプルです。

Sub SaveRangeText()

Dim MyRange As Range

Dim FileNumber As Integer

Dim Text As String

Dim FileName As String

Range(”A1:A30”).Select

For Each MyRange In Selection

Text = Text & CStr(MyRange.Value) & Chr(13) & Chr(10)

Next

FileName = ”sample.txt”

ifno = FreeFile

Open FileName For Output As #FileNumber

Print #FileNumber, Text

Close #FileNumber

End Sub

って感じじゃどうでしょうね。

◎質問者からの返答

ファイル名が又は番号が不正です

と怒られちゃいました


5 ● rinkan7
●10ポイント

http://yahoo.co.jp/

Yahoo! JAPAN

こんな感じでいかがですか?

Sub aaa()

Dim a As String

Dim ifno As Integer

Dim cnt As Integer

ifno = FreeFile

Open ”c:¥file.txt” For Output As #ifno

For cnt = 1 To 30

a = Range(”A” & cnt)

Print #ifno, a

Next cnt

Close #ifno

End Sub

◎質問者からの返答

エラーは出ませんがファイルが作成できません。

なぜでしょうか


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ