VBまたはVC(VBAは不可)を使ってExcelファイルを生成する方法を紹介しているwebページを探しています。
作成したいExcelファイルというのは、txtでもcsvでもなく、拡張子xlsのファイルです。
任意のセルへ対するデータ設定やシートの追加・名前変更などの操作を行いたいです。

どなたかご存知でしたら、ご教授お願いいたします。

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

A 回答 (1件)

簡単な方法はExcelアプリケーションをCOMオブジェクトとしてVBから呼び出し、そこからExcelを操作する方法を使います。



当然ながら、動作させるマシンにはExcelが入っている必要があります。

↓が参考になるかな?

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
返信が遅くなり申し訳ありません。

色々と参考になりそうです。
どうもありがとうございます。

お礼日時:2005/04/12 12:15

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

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

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

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

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

QVBA : CSV、xlsファイルを内部で開いて処理したい。(Txtファイルで可能なように)

 TextファイルをPC内部で開いて書き込み、読み出しは可能ですが、同様のことをCSVファイルやエクセルファイルで出来ないでしょうか?
 実際には、例えば次のような処理をしてみたいです。
For i= 1 to 10
cells(i,1)=i
next i
というコードをPC内部でActiveになったファイルにしたいと考えています。
 宜しくお願いいたします。

Aベストアンサー

Set objExcel = CreateObject("Excel.Application")

objExcel.Visible = False
objExcel.Workbooks.Open ("c:\book1.xls")
objExcel.Sheets("Sheet1").Select
objExcel.Cells(1, 1).Value = "hello world"
objExcel.Workbooks("book1.xls").Close SaveChanges:=True

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Q【Excel VBA】セルの値を新規xls(またはcsv)ファイルに出力したい

お世話になります。

あるブックのあるシート内のデータを、別の新規Bookに自動出力したいのですが。

A.Book(元データ)
セル A1:A200
   B1:B200

指定した名前でCドライブ直下に出力(常に上書き)

この動作をA Bookのシートにボタンを作成し、
それをクリックすることで起動させたいです。

参考になるソースを教えていただけないでしょうか?
(当方、初心者です)

※質問内容に不明点があればご指摘ください、補足欄にて対応させていただきます

Aベストアンサー

Dim buf As Variant
buf = ActiveSheet.Range("a1:b200")
Sheets.Add after:=Worksheets(Worksheets.Count)
Application.DisplayAlerts = False
With Worksheets(Worksheets.Count)
.Name = "copy"
.Range("a1:b200") = buf
.Move
End With
With Workbooks(Workbooks.Count)
.SaveAs "C:\test.xls"
.Close
End With
Application.DisplayAlerts = True

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Qvb.netでCSVファイルを変換して新しいCSVファイルを作りたいの

vb.netでCSVファイルを変換して新しいCSVファイルを作りたいのですが、どのようにすれば良いかヒントを教えていただけないでしょうか?

A組,10代,10
A組,20代,20
A組,30代,30
B組,10代,40
B組,20代,50
B組,30代,60
C組,10代,70
C組,30代,80

この様なCSVファイルを変換して

,A組,B組,C組
10代,10,40,70
20代,20,50,
30代,30,60,80

という表のようなCSVファイルを作りたいのです。
データベースなどに入れずに、ファイルtoファイルでの変換がしたいです。
最初のファイルの1列目と2列目の項目をそれぞれ配列に入れて重複をなくす位までは思いつくのですが、そこから先がどの様にすれば良いかよく分かりません。
ヒントだけでも良いのでよろしくお願いいたします。

Aベストアンサー

SortedDictionaryを使うのは如何でしょう?
Dim Q As New SortedDictionary(Of String, _
    SortedDictionary(Of String, Integer))
Qのキーは10代、20代、等の項目になります。
QのデータはSortedDictionaryで、キーはA組、B組等、
データは数値(3列目)です。
ランダムに書き込んでも、ソートされて記録されますので、
ファイルの入力処理後にFor Each文でデータを出力すれば
目的のように出力できます。

Dim A As New StreamReader("C:~.csv", _
    Encoding.GetEncoding("shift_jis"))
Dim B As New SortedDictionary(Of String, Integer)
Dim C As New SortedDictionary(Of String, _
    SortedDictionary(Of String, Integer))
Dim D As String
Dim E
Do Until A.EndOfStream
    D = A.ReadLine
    E = D.Split(",")
    If Not B.Keys.Contains(E(0)) Then B.Add(E(0), 0)
    Dim F As SortedDictionary(Of String, Integer)
    If C.Keys.Contains(E(1)) Then
        F = C(E(1))
        If F.Keys.Contains(E(0)) Then
            F(E(0)) = F(E(0)) + E(2)
        Else
            F.Add(E(0), E(2))
        End If
    Else
        F = New SortedDictionary(Of String, Integer)
        F.Add(E(0), E(2))
        C.Add(E(1), F)
    End If
Loop
A.Close()
Dim G = New StreamWriter("C:\~.csv", False, _
    Encoding.GetEncoding("shift_jis"))
For Each H As String In B.Keys
    G.Write("," & H)
Next
G.WriteLine("")
For Each H As String In C.Keys
    G.Write(H)
    Dim F As SortedDictionary(Of String, Integer) = C(H)
    For Each D In B.Keys
        If F.Keys.Contains(D) Then
            G.Write("," & F(D).ToString())
        Else
            G.Write(",0") '省略時はコメントアウト
        End If
    Next
    G.WriteLine("")
Next
G.Close()

SortedDictionaryを使うのは如何でしょう?
Dim Q As New SortedDictionary(Of String, _
    SortedDictionary(Of String, Integer))
Qのキーは10代、20代、等の項目になります。
QのデータはSortedDictionaryで、キーはA組、B組等、
データは数値(3列目)です。
ランダムに書き込んでも、ソートされて記録されますので、
ファイルの入力処理後にFor Each文でデータを出力すれば
目的のように出力できます。

Dim A As New StreamReader("C:~.csv", _
    Encoding.GetEncoding("shift_jis"))
Dim B As...続きを読む

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

Q1フォルダに「A.xls」、「B.xls」、「C.xls」・・・とある

1フォルダに「A.xls」、「B.xls」、「C.xls」・・・とある場合、
すべてのファイルに一斉にA1セルに「a」という文字を反映させる場合の
VBAプログラムを教えていただけますでしょうか?
よろしくお願いいたします。

Aベストアンサー

フォルダ名を変更してから試してね
4行目の
mPath = "C:\tmp\"
「aaa」なら
mPath = "C:\aaa\"
に変更


Sub test()
Dim mPath As String
Dim nf As String
mPath = "C:\tmp\"
nf = Dir(mPath & ".xls")
Do While nf <> ""
Workbooks.Open Filename:=mPath & nf
Workbooks(nf).ActiveSheet.Range("a1").Value = "a"
Workbooks(nf).Close SaveChanges:=False
nf = Dir()
Loop
End Sub

簡単なコードにしてあるので、分らない所はヘルプで調べてね
参考まで

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

QExcel VBA: 自動でxlsファイルを開くマクロでメッセージが現れたとき自動でボタンを押す方法

自動で同ディレクトリ内のxlsファイルを開くマクロを作っています。
開きたいファイルにリンクが張られてあると、「リンクを更新しますか?」という類のメッセージウィンドウが現れるのですが、マクロでこれを自動的に「Yes」「No」と答えるにはどうしたらよいのでしょうか。一応、下のマクロでファイルを開こうとするとこまではできてます。
 Sub update()
Dim DataFile As Workbook
Dim fn As String
fn = "Link.xls"
Set DataFile = Workbooks.Open(FileName:=ThisWorkbook.Path & "\" & fn)
Set DataFile = Nothing
End Sub

Aベストアンサー

Workbooks.Openの2番目の引数が、UpdateLinksなので
Set DataFile = Workbooks.Open(FileName:=ThisWorkbook.Path & "\" & fn , True)
でどうでしょうか?


人気Q&Aランキング

おすすめ情報