OCN光で最大124,800円おトク!

Excelで(.prn)(スペース区切りテキストファイル)保存する際、指定範囲だけを保存する方法はないでしょうか?。もちろん、余計な範囲を削除する方法では、他のセル参照などマクロが狂ってくるので、そんな単純な方法ではありません。この機能はロータス123にあった機能で、Excelで色々と試しているのですが、どなたかご存じでしたらご教示をよろしくお願いします。

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

A 回答 (4件)

[No.3]において、「ペースト」を「値の貼り付け]に読み替えて実行すれば、「他のセル参照など」が無関係になりますよ。

つまり、次の手順になります。(Excel 2002 の場合)
1.「指定範囲だけを」コピー
2.新規ブックを開いて、Sheet1 のセル A1 を選択
3.[編集]→[形式を選択して貼り付け]を実行
4.“値”に目玉入れて、[OK]をクリック
5.[名前を付けて保存]を実行
6.[ファイルの種類]として “テキスト(スペース区切り)”を選択
7.[ファイル名]を例えば Yabane にして[保存]をクリック
8.「選択しているシートのみを保存する場合は[OK]をクリックしてください」の警告に素直に従う。
9.次の警告でも、ま、[はい]をクリックしておきませう。
10.[ファイル]→[閉じる]で[いいえ]をクリック

実際に試してみて、出来上がった Yabane.prn をテキストエディタで眺めてね。
    • good
    • 2
この回答へのお礼

mike_gさん、Prome_Linさんには丁寧なご回答に感謝申しあげます。
実は、Lotus123(TEXT(スペース区切りテキストファイル))で出力データをAutoCADに取り込んで省力化しているのですが、ご教示いただいた方法は以前より試しておりますが、どうもMicrosoft Excelの(.prn)とLotus123の(.prn)では、セル内計算結果数値の前後カラム数が違った結果となり、困っておりました。本日Microsoftに問い合わせたところ、同じスペース区切りテキストファイルへの変換時の仕様の違いで同様の結果が得られないとわかりましたので、未解決ですが本件「教えて!」を閉じさせていただきます。
有り難うございます。

お礼日時:2014/12/04 16:32

私、バカでした。



それなら、テキストエディタを通さず、
直接、元エクセルで
必要な部分をコピー(記憶)しておき、
新たなエクセルのファイルに
それをペーストすれば良いのです。

その新たなエクセルのファイルを
「名前を付けて保存」で
「.prn」保存すれば良いのです。
    • good
    • 0

ですから、最初のエクセルのデータを


テキストエディタにコピー&ペーストするとき、
必要な部分だけを範囲指定しているので、
新たに作ったエクセルには、
必要な部分しか存在しません。
    • good
    • 0

これは、回答になるかどうか分かりませんが、


私も、よく仕事で、一部分のテキストが欲しい場合があります。

そんな場合は、テキストエディタを立ち上げておき、
エクセル上で必要な部分を範囲指定して、
「ctrl+c(コピー)」→エディタ上で「ctrl+v(ペースト)」
しています。

こうすると、タブ区切りのテキストが得られます。

私の仕事では、タブ区切りしか使いませんので、
(後で、何に使うにも、たいていはこの方が便利)
ここで「名前をつけて保存」すれば良いのですが、
そちらの場合は、スペース区切りが必要ですので、
もう一度、新しいエクセルにそのテキストを貼り付けて
そこから、「.prn」保存するのですが、
これでは、二度手間ですし、
エクセルに貼り付けるとき、
文字として必要な頭の「0」などが
数値と解釈され、欠落してしまうので、
さきに、文字列の設定をセルにしておく必要があります。

答えになっていなくて、申し訳ございません。
    • good
    • 0
この回答へのお礼

有り難うございます。
>もう一度、新しいエクセルにそのテキストを貼り付けて
>そこから、「.prn」保存するのですが、
といただきましたが、この時点で最初に戻ってしまっています。
その(.prn)保存する際、部分範囲を指定できるのかをお聞きしているところです。

お礼日時:2014/12/04 00:54

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

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

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

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

QExcelで指定範囲のデータのみを保存したい

OS:windows2000
Excel2002

xlsファイルを「名前を付けて保存」で別名ファイルとして保存するとき、データの一部のみを指定して保存をする事は出来ますか?

(1)ブックにシート名が「仕入」「売上」「利益」と3枚あるとします。
「売上」のシートのみを別名ファイルとして保存したい。
当然「仕入」「利益」シートを削除してから別名で保存すれば出来ますが、他に方法があれば教えて欲しいのです。

(2)「仕入」シートに1000行のデータがあるとします。
101行目から200行目のみのデータを別名で保存したい。
これも101行目から200行目以外のデータを削除してから別名で保存すれば出来ますが、他にもっと便利な方法があれば教えて下さい。

私の知識は少々のマクロ記述は理解でる程度です

Aベストアンサー

「売上」シートのシートタブ上で、右クリック。
「移動またはコピー」をクリック。
「移動先ブック名」を「新しいブック」指定する。
「コピーを作成する」にチェックを入れる。
「OK」をクリック
Book2やBook3ができて売上シートだけがコピーされる。
ファイルー名前をつけて保存ー名前を「売上単独」のような名前を
つける(入力する)。
「保存」をクリック
で目的は達せられる。
(2)は
101から200行まで範囲指定。
コピーする。
白紙新シートに貼り付け。
そのシートに対し(1)の操作を行う。
そのシートを削除。

Qエクセル・マクロ(VBA)で、指定範囲を保存したい。

エクセルマクロ(VBA)で、セル範囲を指定してその指定した部分だけをファイルに保存したいのですが、どのようにしたらよろしいのでしょうか?

Aベストアンサー

私が考えていたのと、ちょっと趣旨がちがっちゃったですね。
#1 のレスについていたのをちょっと付け足して、変更してみました。

Sub test_1()
Worksheets("sheet1").Range("A1:F12").Copy
With Workbooks.Add
 ActiveSheet.Paste
 Application.DisplayAlerts = False '同じ名前があった時上書き
 ActiveWorkbook.SaveAs Filename:= _
  "C:\Documents and Settings\システム\" & Date$ & ".xls" _
 , FileFormat:=xlNormal _
 , Password:="00000000" _
 , WriteResPassword:="11111111" _
 , ReadOnlyRecommended:=True _
 , CreateBackup:=False
 Application.DisplayAlerts = True
 .Close False '閉じる
End With
End Sub

'*****************************************
以下は、私が考えたものです。参考にしてみてください。
つまり、同名のファイルがあった時の処理を考えてみました。
少しは、参考になるかもね。(^^;

Sub Selection_CopySave()
 Dim Rng As Range
 Dim rtn As Boolean
 Set Rng = Selection 'マウスで複数のセルを選択してください。
 If Rng.Count = 1 Then Exit Sub
 Rng.Copy
 With Workbooks.Add
  ActiveSheet.Paste
  Do
   rtn = FileCheck
  Loop While rtn = True
  .Close False '閉じる
 End With
 Application.CutCopyMode = True
End Sub
Private Function FileCheck() As Boolean
Dim Fname As String
Dim rtn As Integer
Dim flg As Boolean
  flg = False
  Fname = Application.GetSaveAsFilename(Date$, "エクセルブック (*.xls), *.xls")
  If Fname <> "False" Then
   If Dir(Fname) = "" Then
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Fname _
     , FileFormat:=xlNormal _
     , Password:="00000000" _
     , WriteResPassword:="11111111" _
     , ReadOnlyRecommended:=True _
     , CreateBackup:=False
    Application.DisplayAlerts = True
    Else
    rtn = MsgBox("同名のファイルがあります。上書きしますか?", vbYesNoCancel)
    If rtn = vbYes Then
     ActiveWorkbook.Save
    ElseIf rtn = vbNo Then
     flg = True
    ElseIf rtn = vbCancel Then
     FileCheck = False
     Exit Function
    End If
   End If
  End If
  FileCheck = flg
End Function

私が考えていたのと、ちょっと趣旨がちがっちゃったですね。
#1 のレスについていたのをちょっと付け足して、変更してみました。

Sub test_1()
Worksheets("sheet1").Range("A1:F12").Copy
With Workbooks.Add
 ActiveSheet.Paste
 Application.DisplayAlerts = False '同じ名前があった時上書き
 ActiveWorkbook.SaveAs Filename:= _
  "C:\Documents and Settings\システム\" & Date$ & ".xls" _
 , FileFormat:=xlNormal _
 , Password:="00000000" _
 , WriteResPassword:="11111111" ...続きを読む

Qエクセルシートの一部を送りたい

エクセルのシートの一部分をメールで送る場合
Sheet1のB10:G22 迄を コピー&貼り付けを利用せずに
一部だけをメールで送りたい場合、どのようにすれば
良いでしょうか?

メールにコピー&貼り付けした場合、受け取り側で
保存とかが出来ないのでできれば、一部分を
エクセルのブックとして送れないでしょうか?

送る人は、会社の会長で、PCに関しては初心者程度です。
あまり複雑な方法や新しくソフトを入れることは出来ないと
断言しています。

あまり、会社の方にこられないので、上記のことを
どうにかしてほしい。

エクセルのブックを送る方法はしっているが、それだと
知られたら困る情報も入っているので、コピー&貼り付けで
送ったら、保存できないと言われたそうです。

一年に数度しか会わないので、ごくごく簡単な方法は
ないでしょうか?

Aベストアンサー

・一つのシートの中の一部だけを保存したいなら
別名で保存して不要な場所を削除するのが実は一番簡単かもしれません。
新規ワークシートに貼り付けるのはけっこう手間がかかります。
Webページとして保存する時に「選択範囲」のラジオボタンをクリックすれば、その範囲のみのファイルが作成されます。
http://www.wanichan.com/pc/excel/2002/a05.htm

・いくつかのシートの中の一つのシートを送信したいなら
Outlookが既定のメールハンドラとなっている環境なら、現在のシートを添付した形で新規メール作成画面を起動させることができるはずです。
★ブックやワークシートを電子メールで送信する - Excel - Microsoft Office
http://office.microsoft.com/ja-jp/excel-help/HP005201209.aspx
http://www.excel-search.net/?p=340
http://support.microsoft.com/kb/826920/ja
他のメーラーを既定として使っていると、ファイル全部を添付してしまうようになるみたいですけれど。
Webページとして保存すれば、「選択範囲」のみの保存と、保存時に開いていたシートのみの保存ができます。

・一つのシートの中の一部だけを保存したいなら
別名で保存して不要な場所を削除するのが実は一番簡単かもしれません。
新規ワークシートに貼り付けるのはけっこう手間がかかります。
Webページとして保存する時に「選択範囲」のラジオボタンをクリックすれば、その範囲のみのファイルが作成されます。
http://www.wanichan.com/pc/excel/2002/a05.htm

・いくつかのシートの中の一つのシートを送信したいなら
Outlookが既定のメールハンドラとなっている環境なら、現在のシートを添付した形で新規メール作成画面...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QExcel:任意の列だけCSV形式で出力したい。

Excel(Ver2002)で任意の列(1列のみ)内の任意の行数(例えばA-10からA-99まで)だけCSV形式で出力したいのですが、どうすればよいでしょうか?

マクロやVBAなどの特殊なプログラムは使用したくありません。

方法をご存知の方、おられましたらその方法又は方法が詳細に記載されているホームページのURLをお教え下さい。

よろしくお願いします。

Aベストアンサー

任意の1列だけでも、連続する範囲でも、ドラッグなどで範囲を選択し、右クリック⇒コピー。その後、スタート⇒すべてのプログラム⇒アクセサリー⇒メモ帳を開き、その画面上で、右クリック⇒貼り付けをしてください。そうすると、Excelでコピーしたものが貼り付けられますので、名をつけて保存で、ファイルの種類で「すべてのファイル」を選択し、ファイル名の欄に、例えば abcd.csv などと拡張子を含めたものを入力し、保存してください。保存場所は、希望に合わせて、上の「保存する場所」などから変えてください。デフォルトだと、Cドライブ直下やマイドキュメントに保存されると思います(あなたのPCがどのように設定されているかわかりませんが)

マクロやVBAなどの特殊なプログラムは使用したくないということなので、以上のやり方になるかと思います。Excel単独でのやり方はないと思います。なお、メモ帳を開くのではなく、Excelで、新規ドキュメントを立ち上げて、それに貼り付け、その後、CSVファイルとして保存することもできますが、メモ帳を使うやり方の方が軽快に行えると思います。

任意の1列だけでも、連続する範囲でも、ドラッグなどで範囲を選択し、右クリック⇒コピー。その後、スタート⇒すべてのプログラム⇒アクセサリー⇒メモ帳を開き、その画面上で、右クリック⇒貼り付けをしてください。そうすると、Excelでコピーしたものが貼り付けられますので、名をつけて保存で、ファイルの種類で「すべてのファイル」を選択し、ファイル名の欄に、例えば abcd.csv などと拡張子を含めたものを入力し、保存してください。保存場所は、希望に合わせて、上の「保存する場所」などから変えてください。デ...続きを読む

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QPRNファイルをエクセルEXCELで関連付けしたいのですが

prnファイル(スペース区切りテキストデータ)をエクセルに読み込むのは、エクセルを起動後にテキストデータウィザードでできますが、エクスプローラーで当該prnファイルをダブルクリックして(例えばABC.prnをダブルクリック)、起動、データ読み込みするにはどのようにしたらよいのでしょうか。単にエクセルに関連付けすると、最初の列に長いテキストとして読み込まれてしまいます。
よろしくお願い致します。

Aベストアンサー

>最初の列に長いテキストとして読み込まれてしまいます
そのあとに、
書式-配置-折り返して全体を表示及びセル結合をOFFにする。そしてA列のみを範囲指定して、
データ-区切り位置-スペース・・完了で各列セルにデータが収まらないかやって見てください。
PRNファイルに途中空白セルに当たるところがあると、区別できないので、左に詰まると思うので心配ですが、そう言うのが無いケースなら上手く行くでしょう。
まあ本来はメニューのファイルからファイル種類を指定して読みこむか、VBAでの処理が確実でしょうが。

QEXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

Aベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Ce...続きを読む

Qエクセルのシートをテキストで保存したい

A2からB5までデータが入っている時に、
このデータのみ(A1~B1まで除く)をテキスト
ファイル(スペース区切り)(.prnファイル)
で保存しようとすれば
どのようにすればよろしいのでしょうか。

SaveAsを使うとデータの取り出し方法がわからず、
Writeを使うのはCSVファイルにする方法しか分からない
状態です。

よろしくお願いします。

Aベストアンサー

補足について、
>最後の行までとんでいってしまいます。

変数Output_Sheetは定義されているでしょうか。定義してなければOn Error GoToで最後まで飛びます。
また、スペース区切りのファイルにならないと思いますので手を加えてみました。On Error GoToの処理も少し手を加えています。

後半部分です。
  For lRowNumb = 5 To lLastRowNumb
    For nColumNumb = 1 To 24
      sData = Cells(lRowNumb, nColumNumb).Value
      If nColumNumb < 24 Then '修正
        Print #nFrn, sData & " "; '修正
      Else '修正
        Print #nFrn, sData '修正
      End If '修正
    Next nColumNumb
  Next lRowNumb

  Close #nFrn

  Exit Sub '追加

HandleError:
エラー処理?

補足について、
>最後の行までとんでいってしまいます。

変数Output_Sheetは定義されているでしょうか。定義してなければOn Error GoToで最後まで飛びます。
また、スペース区切りのファイルにならないと思いますので手を加えてみました。On Error GoToの処理も少し手を加えています。

後半部分です。
  For lRowNumb = 5 To lLastRowNumb
    For nColumNumb = 1 To 24
      sData = Cells(lRowNumb, nColumNumb).Value
      If nColumNumb < 24 Then '修正
     ...続きを読む

Qエクセル形式ファイルをCSV、TXT形式で出力したい。

タイトル通り、エクセルファイル形式をCSV、テキスト形式で出力したいのですが、どうすれば良いのでしょうか?
出来ない場合は、ボーランド社のDELPHIからエクセルファイルを読み込ませる方法を知りたいのですが、どうすれば良いのでしょうか?
宜しくお願いします。

Aベストアンサー

対象のエクセルファイル(拡張子がXLS)を開き
ファイル → 名前を付けて保存 を選んだ後に
保存先を選ぶ時のすぐ下にファイルの種類を CSV や TXTに変えれば可能ですよ。


人気Q&Aランキング