- ベストアンサー
VB2005 → EXCELのセルに貼り付け
いつもお世話になってます。 私はVB入門者です。 取得した値をセルに転載する処理を行っております。 値をセルに貼り付けるのは下記の方法で出来たのですが Dim oExcel As Object Dim oBook As Object Dim oSheet As Object oExcel = CreateObject("Excel.Application") oBook = oExcel.Workbooks.open("C:\hoge.xls") oSheet = oBook.Worksheets(1) oSheet.Range("A2") = hoge_name oSheet.Range("A2") = hoge1_name ←これをA2のhoge_nameの下段に入れたいのです。 oBook.SaveAs("C:\hoge.xls") oSheet = Nothing oBook = Nothing oExcel.Quit() oExcel = Nothing GC.Collect() 2つの変数をエクセルのひとつのセルに改行して貼り付ける方法を教えて下さい。 又、上書き保存の際に確認のメッセージは不要なのに表示されてしまいます。 どのように書き換えたら良いのでしょうか。 どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- VB6にてエクセルのセルに貼り付けで・・・
お願いします。VB6にてエクセルの任意のセルへデータを貼り付けたいのですが、そのエクセルにauto_openが含まれていてフォームを開くようになっています。 Option Explicit Dim objExcelApp As Workbook ---------------------------- strExcelFile = "C:\A.xls" strExcelSheet = "Sheet1" objExcelApp.ActiveSheet.Cells(1, 1).Value = "A" ではフォームが開いて更新ができません。エクセルを開かずに値をセルへ代入できないものでしょうか? どうかお願いします。
- ベストアンサー
- Visual Basic
- VBからエクセルを起動。そのあとエクセルを終了
教えてください。 VBからエクセルを起動します。 そのあと、エクセルのシートの上にデータを貼り付けます。そして、エクセルを終了します。 しかし、エクセルが終了しません。 タスクバー上のエクセルをクリックすると終了します。 どうして、このような現象が起こるのかわかりません。 教えてください。 下記に同様のサンプルを書きました 誤記入があるかも知れませんが このような感じのプログラムです。 以上、よろしくお願いします。 public sub test Dim XApp as Excel.Application Dim nfilename as string Dim xlBook As Object Dim xlSheet As Object ' エクセルを起動 Set xlApp = New Excel.Application nfilename ="AAAA.xls" ' 指定されたファイルを開く Call xlApp.Workbooks.Open(nfilename) Set xlBook = xlApp.ActiveWorkbook Set xlSheet = xlBook.Worksheets(1) 'フォームを貼り付ける xlSheet.Range("a1").PasteSpecial 'ファイル名の作成 Filename="BBBB.xls" '保存 ChDir "C:\" xlBook.SaveAs Filename:=Filename,FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Set xlSheet = Nothing xlBook.Close True Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing End sub
- ベストアンサー
- Visual Basic
- VB2005でのEXCEL操作
いつもお世話になってます。 VBレスキュー花ちゃんを参考にやってみたのですがうまくいかないのでアドバイス頂きたいと思います。 下記のコードにてセル内にテキストを書き、罫線をつけたあと 文字を中央揃えにする場合は、どのようにすればいいのでしょうか。 エクセルにてマクロ記録を行い、開いたところ Range("B1").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With と、ありましたがHorizontalAlignment = xlCenterを xlBook.Worksheets(1).Range("A1")以降に貼り付けても xlCenterが宣言されていない、とエラーが出てしまいました。 又、空白セルであるE1,F1,G1及びE2,F2,G2、E3,F3,G3は"選択セルの中央揃え"とする場合 HorizontalAlignment = xlCenterAcrossSelection はどのように転載すればいいのでしょうか。 EXCELとの連携について全然理解できていないことが原因なのですが VB6を対象としているサイトでもVB2005にそのまま参考となるのでしょうか。 EXCEL操作については基礎の部分から学びたいので、もし私のように 入門者向けに解説を行っているサイトがありましたら教えてください。 Sub excel2() Dim xlApp As Excel.Application = Nothing Dim xlBooks As Excel.Workbooks = Nothing Dim xlBook As Excel.Workbook = Nothing Dim xlSheets As Excel.Sheets = Nothing Dim xlSheet As Excel.Worksheet = Nothing Dim xlRange As Excel.Range = Nothing Dim xlBorders As Excel.Borders = Nothing Dim xlBorder As Excel.Border = Nothing Try ' 必要な変数は Try の中でインスタンス化する xlApp = New Excel.Application() xlBooks = xlApp.Workbooks xlBook = xlBooks.Open("C:\test.xls") xlSheets = xlBook.Worksheets xlApp.Visible = True xlBook.Worksheets(1).Range("A1") = "No." xlBook.Worksheets(1).Range("B1") = "HOGEHOGE" xlBook.Worksheets(1).Range("B2") = "番号" xlBook.Worksheets(1).Range("C1") = "honyarara" xlBook.Worksheets(1).Range("C2") = "番号" xlBook.Worksheets(1).Range("D1") = "SAMPLE" xlBook.Worksheets(1).Range("E4") = "X" xlBook.Worksheets(1).Range("F4") = "Y" xlBook.Worksheets(1).Range("G4") = "Z" '外枠罫線のコードは省略しました xlApp.Quit()
- ベストアンサー
- Visual Basic
- VB2005でのEXCEL制御について
いつもお世話になってます。 私はVB入門者です。 VBからシートを選択して値を入れることは出来たのですが 範囲選択→格子罫線をひく、といったような操作について 調べたところ、マクロをつくりコピーアンドペーストでスムーズに いくということがわかったので、試したところうまくいきませんでした。 又、質問ナンバー QNo.3575919 に [Visual Basic2005でExcelに罫線を描く]とあり 「CreateObject("Excel.Application")」はソースに入っているか という部分がポイントのようなので、少しいじってはみたのですが うまくかけませんでした。 と、いうよりも理解できませんでした。 下記のコードでは選択範囲を指定する部分まで成功したものです。 アドバイスよろしくお願いします。 Sub excel_app() Dim xlApp As Excel.Application = Nothing Dim xlBooks As Excel.Workbooks = Nothing Dim xlBook As Excel.Workbook = Nothing Dim xlSheets As Excel.Sheets = Nothing Dim xlSheet As Excel.Worksheet = Nothing xlApp = New Excel.Application() xlBooks = xlApp.Workbooks xlBook = xlBooks.Open("C:\hoge.xls") xlSheets = xlBook.Worksheets xlBook.Worksheets(1).Range("A31:Y55").Select() xlBook.Worksheets(1).Range.Borders. ←これ以降がわかりません。
- ベストアンサー
- Visual Basic
- VBでエクセルのセルのバックカラーをつけるには?
お世話になります 表題のように、VBを実行して、エケセルのあるセルに 色(赤)をつけたいのですが どうしたらいいか、アプローチを教えてください ちなみに下記のようなVBは実行して からくりが理解でしました ------------------------------------------ Function Excel_SelectSel_Export1() Dim Xls As Object Set Xls = GetObject("c:\vba\実践VBA.xls") Xls.Application.Windows(1).Visible = True 'ワークシートをアクティブにする Xls.Application.worksheets("sheet1").Activate 'エクスポート先セルをRow(行)とColumn(列)の形式で指定する Xls.Application.Goto "r3c2" 'セルに値をエクスポートする Xls.Application.activecell.Value = "★彡☆彡" Xls.Application.Goto "r4c2" Xls.Application.activecell.Value = "☆彡★彡" Xls.Application.Quit 'Excelを閉じる Set Xls = Nothing Debug.Print "Completed!!" End Function
- ベストアンサー
- オフィス系ソフト
- エクセルコントロールのVB2008での参照方法
VB2008でエクセルから値を取得するプログラムを作成しています セルの値を取得することはできたのですが、シートに貼り付けられた チェックボックスやラジオボックスの値の取得方法が分からずに 困っています。 セルの値を取得するまでのフローは以下の様に作成しました ------------------------------------------ Dim exapp As New Object Dim exbook As New Object exapp = CreateObject("Excel.Application") exbook = exapp.workbooks.open(FileName) Dim exsheet As Excel.Worksheet exsheet = CType(exbook.Worksheets.Item(1), Excel.Worksheet) textbox1.text=exsheet.range("A1").value ・ ・ exsheet.nothing exbook.close(False) exapp.quit ------------------------------------- 上記のセルの値を取得している流れの中でチェックボックスや ラジオボックスの値を参照したいのですが どのようにすればよいでしょうか お手数ですがアドバイスなど頂ければ幸いです
- ベストアンサー
- Visual Basic
- クリップボードの内容をEXCELに貼付け
クリップボード内容をエクセルのシートに貼り付けることをvbで行おうとしています。 1回目はできるのですが、2回目にはエラーが出てしまいます。(貼り付けるセルを指定したときに) 現状のコードを添付します。おかしなところがわかる方、教えて下さい。 '------------------------------------------------------- 'エクセルを起動させる '------------------------------------------------------- Public Sub ExcelProc() Dim xl2 As Excel.Application Dim xl2Book As Object Dim xl2Sheet As Object Dim ELSFileName As String 'エクセルの起動 Set xl2 = CreateObject("excel.application") xl2.Visible = True xl2.Workbooks.Open ("d:\test.xls") Set xl2Book = xl2.ActiveWorkbook Set xl2Sheet = xl2Book.Worksheets(1) 'D10にクリップボードの内容を貼り付ける xl2Sheet.Select Range("d10").Select ActiveSheet.Paste '保存するファイル名を作成 ELSFileName = "c:\test10.xls" '保存 ChDir "C:\" ActiveWorkbook.SaveAs FileName:=ELSFileName, FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Set xl2Sheet = Nothing xl2Book.Close True Set xl2Book = Nothing xl2.Quit Set xl2 = Nothing End Sub この関数を2度実行させたらエラーになります。 Range("d10").Select 'この箇所でエラーになる。 お願いします。
- ベストアンサー
- Visual Basic
- Excelにおけるセルの値をVB2005に配列として取り込みたい
Excelのセルの値をVB2005に配列として取り込みたいのですが、Excel.Rangeと配列の整合性が取れず困っています。 なんらかヒントになるような助言をお願いします。 以下は今までに作成中のコードです。 Public Class Form1 Dim xlsapp As New Excel.Application Dim xlsbook As Excel.Workbook Dim xlssheet As Excel.Worksheet Dim fn As String = "sample.xls" Dim Q(,,) As Double Dim i, j, x, y, z As Integer Dim k As Double Dim w(i), v(i), u(i) As Double Dim As Object Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click xlsbook = xlsapp.Workbooks.Open(fn) xlssheet = xlsbook.Worksheets(1) k = 1 w(i) = xlssheet.Cells(1, 3) v(i) = xlssheet.Cells(1, 2) u(i) = xlssheet.Cells(1, 1) For x = 2 To 11 If w(i) = 1 Then For y = 2 To 11 If v(i) = 1 Then Q(1, 1, k) = u(i) k = k + 1 End If Next End If Next z = k For k = 1 To z TextBox1.Text = Q(1, 1, k) Next End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() xlsapp.DisplayAlerts = False xlssheet = Nothing xlsbook.Close() xlsbook = Nothing xlsapp.Quit() xlsapp = Nothing End Sub End Class
- 締切済み
- Visual Basic
- excelのデータをvbにとりこむ
excelのあるセルのデータを取り込みたいのですが、 どうすればよいでしょうか? C:\123.xlsというファイルのsheet1の (2,4)というセルにある実数型のデータを 出力するという、意図です。 Private Sub Setting_Click() Dim xls As Object Dim xlsFilename As String Dim xlsSheetname As String xlsFilename = "C:\123.xls" xlsSheetname = "Sheet1" Set xls = CreateObject("Excel.Application") xls.Application.Visible = False xls.Application.Workbooks.Open xlsFilename Dim r1 As Double r1 = xls.Application.Workbooks.cells(2, 4).Value Print r1 end sub
- ベストアンサー
- Visual Basic
- A1セル入力値をファイル名先頭に追加したい。
マクロ初心者で色々な事例を組み合わせて次のマクロを 作成しました。 A.xlsを開いて一部加工したファイルをB.xlsで保存し さらに一部を消去しC.xlsで保存するマクロです。 今回、B.xlsおよびC.xlsの先頭にA.xlsのA1セルに入力 された6桁の数字を付加して保存したいのですが・・・。 例えばA1セルが123456の時は 123456B.xls 123456C.xls どなたか教えてください。 現在のマクロ Sub Macro2() Dim strFilePath As String Dim strFileName As String Dim flg As Boolean '◆保存するパスの設定 strFilePath = ThisWorkbook.Path & "\" '◆保存するファイル名の指定 strFileName = "B" On Error Resume Next Workbooks(strFileName).Activate ThisWorkbook.SaveAs strFilePath & strFileName '◆個人情報消去 Range("D42:E49").Select Selection.ClearContents Range("d1").Select strFileName = "C" ThisWorkbook.SaveAs strFilePath & strFileName Application.Quit End Sub
- ベストアンサー
- Visual Basic
- スパロール加工は硬い表面処理の上から圧をかけることで、めっきにクラックができる可能性があるが、スパロールの提案があることから一定の効果が期待されている。
- 断面カットした製品の電子顕微鏡観察では、めっきと母材の間に界面があることが確認された。母材とめっきの間に界面があるのは一部ではあるがNGと考えられる。
- サプライヤーからのスパロールの提案により、スパロール加工が一定の効果をもたらす可能性がある。
お礼
アドバイスを元に構成しなおし、うまくいきました! For n = 0 To hoge_id.Length - 1 ReDim Preserve hoge_name1(hoge.Length - 1, 0),hoge_name2(hoge_id.Length - 1, 0) hoge_name1(cont, 0) = "配列1:" & hoge_name1 hoge_name1(cont, 0) = hoge_name(cont, 0) & vbLf & "配列2:" & hoge_name2(cont,0) cont += 1 Next oSheet.Range("A2").Resize(hoge_id.Length, 1) = hoge_name1 ちょっとぎこちないですが、出力はバッチリでした。 どうもありがとうございました