エクセルで下記のVBAで一太郎が起動し、任意のファイルを読み込めます。
ワード、ロータス、三四六など同様に読み込みたいのですが、
多分"JXW.application"を変更すれば良いと思うのですが、それぞれどうすれば
よいのでしょうか。また、現在この方法で読み込んだ時、画面下にメニューアイコンの形で読み込まれることがあります、画面サイズの制御法を教えてください。
さらに"JXW.application"に相当する情報は、何に記載されているのでしょうか。
Dim Taro As Object
Set Taro = CreateObject("JXW.application")
Taro.Visible = True
Taro.documents.Open "ドライブ名:ファイル名.拡張子"
なにぶんVBAについて素人なので、よく理解しておりませんので、宜しく
ご教示願います。

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

A 回答 (2件)

wordは、


set a= CreateObject("word.application")
ですね。

Lotus,三四郎については、今手元に環境が無いんで、不明です。


どのように知るかですが、まず、Lotusや三四郎のマクロのヘルプ、仕様書があれば書いてある可能性があります。

それらの資料から見つけることが出来なければ、VBAのエディタの画面で、[ツール]-[参照設定]すると、組み込み可能なオブジェクトの一覧が表示されますので、まず、これを使って、該当するオブジェクトを組み込んでみます。(Wordなら、Microsoft Word 9.0 Object Libraryです。)
で、
dim new
とか打ち込んでやると、組み込み可能なオブジェクトの一覧が表示されますが、そっから見当をつけるといいです。


一太郎の画面サイズの変え方ですが、これも一太郎のマクロ関係のヘルプに記述が無いのであれば、上記の「参照設定」を使って調べるしかないですね。

参考までに、Word文書を最大化の状態で開くには、(「参照設定」Wordの機能を組み込んでから)

Dim WordApp As New Word.Application
WordApp.WindowState = wdWindowStateMaximize
WordApp.Visible = True

のようにします。 理解の助けのために、参照設定を使わないバージョンも書いてみました。
Dim WordApp As Object
Set Wordapp = CreateObject("Word.Application")
WordApp.WindowState = wdWindowStateMaximize
WordApp.Visible = True
    • good
    • 1
この回答へのお礼

ありがとうございました。
種々のファイルに、説明文を付けて、エクセルで管理しようと考えました。
土日に書店で立ち読みし、ワード、エクセルは分かりました。
三四六、ロータスは、いろいろ調べたり試したりしましたが未だに分かりません。
また宜しくお願いします。

お礼日時:2001/02/27 17:16

>種々のファイルに、説明文を付けて、エクセルで管理しようと考えました。



これに関しては、すべてのアプリケーションで同様の操作が可能、というわけではないです。
あくまで、「対応したアプリケーション」が対象です。
ロータスや三四六は多分対応していると思いますが。

先日、Lotus1-2-3のかなり古いバージョンを触る機会があったのですが、その時の感触から言うと
CreateObject("lotus123.application")
あたりが臭そうです。

詳しくは、前述の「参照設定」を使った方法でお試しください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
私のパソコンに123が現在インストールされていないので、
今は、確かめることができませんがやってみようと思います。

お礼日時:2001/02/28 17:45

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

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

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

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

QEXCEL VBA ワークシートのコピーについて

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピー先BOOKに

         ワークシート名
ワークシート1 処理1ワークシート 
ワークシート2 処理2ワークシート
ワークシート3 処理3コピー元ワークシート3

という具合にワークシートを複数コピーしたいのですが

処理ごとにデータを代入し、コピー処理はできるのですが。

コピー先BOOK

ワークシート3 処理3ワークシート

だけしかコピーされてないBOOKが作成されます。
上書きされているのだと思われます。

対処法が調べましたが見つけられていません。

すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピ...続きを読む

Aベストアンサー

今どういうコードを書いているのか不明なので、とりあえず
「1つのシートを別のブックに複数回コピーする」ための参考ソースを書きます。
コピー元のブックに下記ソースを貼り付けて実行してもらえば
新規ブックにコピー元のシートが3枚コピーされると思います。
(新規ブックを追加しているのでシート数は3枚より多くなります)

Sub copySheet()
Dim masterWb As Workbook
Dim masterSh As Worksheet
Dim copyWb As Workbook

Set masterWb = ThisWorkbook
Set masterSh = masterWb.Sheets(1)
Set copyWb = Workbooks.Add

'ここからが実際のコピー処理です。
'単純に3回コピーメソッドを呼び出して3回コピーしています。
masterSh.Copy before:=copyWb.Sheets(1)
masterSh.Copy before:=copyWb.Sheets(1)
masterSh.Copy before:=copyWb.Sheets(1)

End Sub

今どういうコードを書いているのか不明なので、とりあえず
「1つのシートを別のブックに複数回コピーする」ための参考ソースを書きます。
コピー元のブックに下記ソースを貼り付けて実行してもらえば
新規ブックにコピー元のシートが3枚コピーされると思います。
(新規ブックを追加しているのでシート数は3枚より多くなります)

Sub copySheet()
Dim masterWb As Workbook
Dim masterSh As Worksheet
Dim copyWb As Workbook

Set masterWb = ThisWorkbook
Set masterSh = masterWb.Sheets(1)
Set copyWb = W...続きを読む

QエクセルVBA 「Application.Run」について

職場のエクセルファイルに以下のようなコードがあります。
これはブック内の○○というマクロを実行するという意味でしょうか?
(実際は~~部分に多くのコードがあり、上記のことが正しいのかよくわかりません)
Sub test()
~~
Application.Run "ThisWorkbook.○○"
~~
End Sub
以上、よろしくお願いします。

Aベストアンサー

こんにちは。

こういうのは、ほとんど、みなさん、見よう見まねだと思いますし、分からずに使っているものだと思います。以下を見ても区別は付かないと思いますが、基本的には、自ブック(ThisWorkbook)に対して、「Application.Run "ThisWorkbook.○○"」このようなコードは書きません。

Call がよいとか、どうかは、その状況によります。ただ、基本ですと、Excelの場合は、標準モジュールから、ThisWorkbook のコードは呼び出すことはありません。必要なら、両方とも、標準モジュールに書き込みます。ThisWorkbookは、ローカルオブジェクトを持っていますから、特別な働きを持たすコードでなければ、そこに書きません。

プロシージャのTest_A ~ Test_C までの中で、Test_C は、通常、このようには書きません。

同じプロシージャの Test1 ~Test3で、Test1とTest2 は、呼び出し側から、値渡し・参照渡しがコントロールできますが、Call で呼び出した場合は、呼び出される側で値渡し・参照渡しが決められます。

だから、Call を使うことが多いことになろうかと思います。

'-------------------------------------------
'標準モジュール
Sub Test_A()
 
 Call ThisWorkbook.myTest1

End Sub
Sub Test_B()
 
 ThisWorkbook.myTest1

End Sub
Sub Test_C()
 
 Application.Run "ThisWorkbook.myTest1"

End Sub
'-------------------------------------------
'標準モジュール
Sub Test1()
Dim n
 '参照渡し
 ThisWorkbook.myTest2 n
 MsgBox n
End Sub
Sub Test2()
Dim n
 '値渡し
 ThisWorkbook.myTest2 (n)
 MsgBox n
End Sub

Sub Test3()
Dim n
 Call ThisWorkbook.myTest2(n)
 MsgBox n
End Sub

'-------------------------------------------
'ThisWorkbook モジュール
'-------------------------------------------
Sub myTest1()
 MsgBox Time
End Sub
Sub myTest2(arg As Variant)
 '参照渡し(デフォルト)
   arg = Time
End Sub

こんにちは。

こういうのは、ほとんど、みなさん、見よう見まねだと思いますし、分からずに使っているものだと思います。以下を見ても区別は付かないと思いますが、基本的には、自ブック(ThisWorkbook)に対して、「Application.Run "ThisWorkbook.○○"」このようなコードは書きません。

Call がよいとか、どうかは、その状況によります。ただ、基本ですと、Excelの場合は、標準モジュールから、ThisWorkbook のコードは呼び出すことはありません。必要なら、両方とも、標準モジュールに書き込みます。ThisWo...続きを読む

QEXCEL VBA ワークシートのコピーについて

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピー先BOOKに

         ワークシート名
ワークシート1 処理1ワークシート 
ワークシート2 処理2ワークシート
ワークシート3 処理3ワークシート

という具合にワークシートを複数コピーしたいのですが

処理ごとにデータを代入し、コピー処理はできるのですが。

コピー先BOOK

ワークシート3 処理3ワークシート

だけしかコピーされてないBOOKが作成されます。
上書きされているのだと思われます。

対処法が調べましたが見つけられていません。

すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピ...続きを読む

Aベストアンサー

> 配列にワークシートのオブジェクトを入れることとか可能なのでしょうか?

それは多分できないと思います。


> 複数のセル・シートを何回もコピーする場合にでるらしいです。

多分、メモリをたくさん使っちゃってるせいでしょうね。
まず、メモリ使用を減らすようにしましょうか。

・testwriteの最後にオブジェクト変数のメモリ解放を行う。
 具体的には以下のように書く。もうやってたらすみません。
Set cbook = Nothing
Set mastersheet = Nothing
・testwriteの中でのブックオープンおよび保存をやめる。
 新規ブックのオープンをtestwriteを呼ぶ前に1度だけ行い、
 testwriteの中ではその新規ブックに対してシートを追加していく。
 そしてtestwriteの処理が全部終わったら、
 新規ブックの全シートを1度に「記録シートYYYY/MM/DD.xls」にコピーする。

それでも駄目でしたら、以下の回答No.1を試してみてください。
http://oshiete.goo.ne.jp/qa/1822561.html

> 配列にワークシートのオブジェクトを入れることとか可能なのでしょうか?

それは多分できないと思います。


> 複数のセル・シートを何回もコピーする場合にでるらしいです。

多分、メモリをたくさん使っちゃってるせいでしょうね。
まず、メモリ使用を減らすようにしましょうか。

・testwriteの最後にオブジェクト変数のメモリ解放を行う。
 具体的には以下のように書く。もうやってたらすみません。
Set cbook = Nothing
Set mastersheet = Nothing
・testwriteの中でのブックオープンおよび保存をやめ...続きを読む

QエクセルVBA テキスト読み込み(区切り文字で読み込み)  サンプルプログラムの改良をしてください。

通常、エクセルでテキストファイルを読み込もうとすると、ウイザードが立ち上がりそれを終えると読み込めます。
私はこのウイザードで、「カンマやタブなどの区切り文字で…」を選択し、次へ。次の画面で「タブ」と「スペース」にチェックを入れます。なお、スペースにチェックを入れると、自動的に「連続した区切り文字は1文字として扱う」にチェックが入ります。
そして次へ→、完了としてテキストを読み込んでいます。

このたび、この操作が面倒なので、マクロで実行しようといろいろ調べていたら、自分のやりたいことと一番近いサンプルマクロを見つけました。以下です。
http://www.bekkoame.ne.jp/~poetlabo/COMP/Excel/VBASAMP/IMP_TXT.TXT

このマクロをそのまま書いて実行すると、区切り文字を指定でき、読み込めます。
ただし、このままだと区切り文字を1つしか指定できません。
先ほど書いたように、今回は「スペース」「タブ」で区切って開きたいのですが、上記のサンプルプログラムをどう改変すればよいのでしょうか?

通常、エクセルでテキストファイルを読み込もうとすると、ウイザードが立ち上がりそれを終えると読み込めます。
私はこのウイザードで、「カンマやタブなどの区切り文字で…」を選択し、次へ。次の画面で「タブ」と「スペース」にチェックを入れます。なお、スペースにチェックを入れると、自動的に「連続した区切り文字は1文字として扱う」にチェックが入ります。
そして次へ→、完了としてテキストを読み込んでいます。

このたび、この操作が面倒なので、マクロで実行しようといろいろ調べていたら、自分のや...続きを読む

Aベストアンサー

こんにちは。

別に元のコード自体を評価するというような気持ちではありませんが、このコードは、シーケンシャルファイル用(拡張子は、.dat)にも適用できるマクロです。それで、問題は発生はしないけれども、全体的に、インポートは遅いはずです。

それと、誰もご指摘にならないようですが、元のサンプルのコードは、Excel97 用です。

Excel2000以上なら、テキストラインで、このようなことは必要ないはずです。
Call ReadLine(CurTxt, DeLimiter, rn)

Split 関数で十分なはずです。ただし、デリミタは、一つに限るので、その前に、Replace 関数で、置換しておく必要があります。

今風の書き方ではないし、プロシージャが分散しすぎて読みにくいように思います。新たに、書き直したほうがよい様な気もしてくるのですが。

記録マクロに関して、

>どうも思うのと違うため、今のところ保留にしています。
>「読み込み」と「開く」は違うみたいで、手動でやっているのと同じ結果にはなるのですが、新しいファイルが開いて、そこにテキストファイルが開かれたり…。

それは、インポートの方法が違っているからです。これは、VBAのオブジェクトで言えば、QueryTable といいますが、ワークシートでは、[外部データの取り込み]のことを指します。オプション自体は、複雑なこともありますので、記録マクロを利用するのが一番です。なお、Tab と Comma 共存の場合は、QueryTable が優れています。

VBA入門レベルでも、記録マクロと組み合わせれば可能かと思います。というか、よほど、インポート間で加工しなければ、このまま使えると思います。

例:

Sub TestMacro1()
  Dim Fname As Variant
  On Error Resume Next
  ActiveSheet.QueryTables(1).Delete 'QueryTableがあったら削除
  On Error GoTo 0
  Fname = Application.GetOpenFilename( _
  "テキストファイル (*.txt; *.csv),*.txt;*.csv", 1, "OpenTextFile")
  If VarType(Fname) = vbBoolean Then Exit Sub
'-------------------細かいオプションは、記録マクロから取り出してください。---
  With ActiveSheet.QueryTables.Add( _
    Connection:="TEXT;" & Fname, _
    Destination:=Cells(1, 1))
    .AdjustColumnWidth = False '列幅の自動調整
    .TextFileCommaDelimiter = True 'カンマ切り
    .Refresh BackgroundQuery:=False 'バックグラウンドの再入力(一回きり)
    .TextFileTabDelimiter = True 'タブデリミタあり
  End With
'-------------------
  ActiveSheet.QueryTables(1).Delete
End Sub
  

こんにちは。

別に元のコード自体を評価するというような気持ちではありませんが、このコードは、シーケンシャルファイル用(拡張子は、.dat)にも適用できるマクロです。それで、問題は発生はしないけれども、全体的に、インポートは遅いはずです。

それと、誰もご指摘にならないようですが、元のサンプルのコードは、Excel97 用です。

Excel2000以上なら、テキストラインで、このようなことは必要ないはずです。
Call ReadLine(CurTxt, DeLimiter, rn)

Split 関数で十分なはずです。ただし、デリミ...続きを読む

QEXCELのVBAでシートコピーをしたとき元のマクロを削除するには?

VBAのマクロでシートのコピーをしたいのですが、元のシートにはVBAのコードが含まれています。コピーするのはデータだけのコピーが必要で、マクロ自体は必要ないのですが、それを削除するコードはどのように書いたらいいのでしょうか?
どうしてもコピーしたファイルを開くと「マクロが含まれています」という確認メッセージが出てしまうのですが、それもなくしたいのです。
シートにフォームのボタンが配置されている場合も同様に、そのボタン自体をなくした状態でコピーを行いたいのですが・・・。プログラムで行うのは不可能なのでしょうか?

Aベストアンサー

No2です。
サンプルコードを書いてみました。
「オリジナル」という名前のシートを別ブックとしてコピペ保存します。

Sub サンプル()
Dim sc As Integer
sc = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
ThisWorkbook.Sheets("オリジナル").Cells.Copy 'コピー
Workbooks.Add 'ブック追加
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues '値貼り付け
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け
Sheets("Sheet1").Name = "コピー"
Application.CutCopyMode = False
Application.SheetsInNewWorkbook = sc
ActiveWorkbook.Close
ThisWorkbook.Activate
End Sub

No2です。
サンプルコードを書いてみました。
「オリジナル」という名前のシートを別ブックとしてコピペ保存します。

Sub サンプル()
Dim sc As Integer
sc = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
ThisWorkbook.Sheets("オリジナル").Cells.Copy 'コピー
Workbooks.Add 'ブック追加
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues '値貼り付け
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け...続きを読む

QEXCELで、1+1=2, 2+2=4...を100回正確に行う方法

1+1=2, 2+2=4 を100回した場合の、個々の結果を表示させたいと考えています。
Excelでやろうとしたのですが、15桁以上は丸めが入ってしまいます。
この丸めを回避するために、15桁までと、15桁以上を別々に計算すれば良いという
事はわかっているのですが、具体的に、どのような関数を使い、セルを埋めて行けば
よいかが判りません。

操作方法、あるいは参考になるURLを示してもらえませんか。

Aベストアンサー

10桁ごとに表示する関数を作りました。
2^100は31桁になるので4列使用します

D列に下10桁を表示
C列に下11から20桁を表示
B列に下21から30桁を表示
A列に下31から40桁を表示

D1セルに1
D2セルに =MOD(D1*2,10^10)
D3以降はこの式をコピーし貼り付けてください。

C2セルに =MOD(INT(D1*2/10^10)+C1*2,10^10)
C3以降はこの式をコピーし貼り付けてください。

A,B列はC列の式をコピーし貼り付けてください。

10桁ごとに表示されます。

ただし表示形式が標準を0000000000(0が10個)としてください。

QVBAのワークシートの追加とコピーなんですが。

VBAのワークシートの追加とコピーなんですが。


sheet1の原紙をすべてコピーして、

新しくワークシートを追加してそのシートに貼り付けるプログラムを

教えてください。

Aベストアンサー

With ActiveWorkbook
  aaa = .Sheets("Sheet1").Cells(9, 4).Value 'aaaは社員
  bbb = .Sheets("Sheet1").Cells(9, 5).Value 'bbbは4月
  .Sheets("Sheet1").Copy After:=.Sheets(.Sheets.Count)
End With
ActiveSheet.Name = aaa & bbb

QExcelでCSVファイル読み込み時、数字の頭のゼロを省略しないで読むには

MS-ExcelでCSVファイルを読むと、数字の頭の'0'ゼロが省略されてしまいます。
あらかじめ桁数が分かっているのなら、書式のユーザー定義で「0000」などと入れる方法もありますが、今回は桁数が一定ではないのです。
ゼロを省略せずに読み込む方法がありましたら教えてください。

データの例として、
========================
00563,0000031,03,1234
========================

これをExcelで開くと、ゼロが省略されてしまう
========================
563,31,3,1234
========================

宜しくお願いします。

Aベストアンサー

その列の書式を文字列とするのでよければ、
1)いったん、空のワークシートを開いて、
2)データ→外部データの取り込み→テキストファイルのインポート で、ファイルの種類を「すべてのファイル」にして、開きたいCSVファイルを選択し、
3)ウィザードの2/3で区切り文字の「カンマ」にチェックを入れ、3/3で0を残したい列の書式を文字列にして「完了」とすればよいと思います。

QEXCEL2002で、ブック内のワークシートを他のブックに(VBA含む丸ごと)コピーして移す方法

 EXCEL2002で、ブック内のワークシートを他のブックに(VBA含む丸ごと)コピーして移す方法
 普通のやり方では、セルの数字、値だけで、通常は、中身の重要な"関数式"であったり、VBA等のプログラムまで、コピーされることは、ありませんので、そこまで、出来る方法を教えて下さい。

Aベストアンサー

コピー元のBookとコピー先Bookをどちらも開いて
Excel画面上に並べます(左右に並べる方が作業しやすいと思います)

Ctrlキーを押しながら、コピーしたいシートのタブ部分を
クリック長押しすると、+マークと▲マークが出てきます。
マークが出てきたら、新しいBookにドラッグ&ドロップ で
シートコピーが出来ます。

全く同じシートがコピーされ、マクロもコピーされます。

Q*.txtをexcelで読込、""内の改行で…

年賀状の印刷のためにoutlookの顧客データを利用しています。
outlookでデータをエクスポートで*.txtファイルへ出力し、これをexcelへインポートして整理してから、accessへ渡し、年賀状宛名印刷しています。
通常、郵便番号、住所、氏名などであれば問題ないのですが、outlookのメモ欄にいろいろな過去のデータも記してあり、これに改行記号が含まれています。
今回、このメモも一緒にエクスポートし、顧客リストも合せて作成しようと思いました。
しかし、excelで*.txtファイルを読み込んだ時に、どうも、このメモ欄の中の改行記号で、excelの行が変わってしまうようです。
(秀丸で見たところ、"メモ欄内のデータ"となっているが、""内に改行記号があると、行が変わってしまう)
顧客データが沢山になり、いちいちこれを整えるのも面倒ですが、何か良い方法はあるのでしょうか。

Aベストアンサー

テキスト形式のファイルを作ってテストして見ました。
多分16進表示「0d」(jiscode13)「0a」(jiscode10)が問題なのだと思います。(改行と復帰のコード。)
    エクセル読込み・メモ帳表示
chr(13)----------OK------------改行せず     chr(10)----------OK-------------改行せず
chr(10)+chr(13)--空白行入る-------改行せず
chr(13)+chr(10)--OK-------------改行する
メモ欄を、秀丸で16進表示したとき、0a,0dの在りかたが、どうなっているのか、パターンを説明していただければ、10行ぐらいのVBAコードで修正が出来そうですが(お望みなら)。#2のご回答のように、全置換で解決すれば、結構なんですが。(範囲指定の全置換も出来ますので、要らぬ所へ影響しないように、活用する場面があるかもしれません。)


人気Q&Aランキング

おすすめ情報