親子におすすめの新型プラネタリウムとは?

VB.NETで、EXCELのセルに貼り付けたいのです。
.SetValue(rowIndex2, 3, "ABC")
と、しました。これを右寄せにするには
どうすれば良いのでしょうか?
宜しくお願い致します。

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

A 回答 (1件)

お世話になります。



質問者さんの
> VB.NETで、EXCELのセルに貼り付けたいのです。
> .SetValue(rowIndex2, 3, "ABC")
この文章が、
VisualBasic のどのバージョンと
Excel のどのバージョンで
どういった方法でやっているのか、
何に対して SetValue メソッドを実行しているのか
さっぱり解りませんが、
COM を使った方法だと、こんな感じです。
(VB 2005、Excel 2003)

Imports Microsoft.Office.Interop

Public Class Form1
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim xlApplication As New Excel.Application()
    Dim xlBooks As Excel.Workbooks
    xlBooks = xlApplication.Workbooks

    Dim xlBook As Excel.Workbook = xlBooks.Add()
    Dim xlSheets As Excel.Sheets = xlBook.Worksheets
    Dim xlSheet As Excel.Worksheet = DirectCast(xlSheets.Item(1), Excel.Worksheet)
    Dim xlCells As Excel.Range = xlSheet.Cells
    Dim xlRange As Excel.Range
    xlRange = DirectCast(xlCells(1, 2), Excel.Range)
    xlRange.Value = "ABC"
    ' 右寄せ
    xlRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignRight
    xlApplication.Visible = True
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlRange)
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlCells)
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet)
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets)
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks)
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApplication)
  End Sub
End Class
    • good
    • 0
この回答へのお礼

お返事が遅くなり申し訳ございません。
なんとか、できました。
ありがとうございました。
今後ともよろしくお願い致します。

お礼日時:2006/07/07 16:55

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q.NET上でエクセル上に罫線を引く

VB.NETを独学で勉強しているものです
.NETのプログラミングでEXCELを開いてセルに数値を入力するところまではできるようになったのですが、罫線を引こうとするとうまくいきません。
ws.Range(Karist).Borders.LineStyle = xlContinuous
のところの「xlContinuous」の下部に波線が出て、変数が宣言されていないと出るのですが、EXCELの定数はどのように宣言すればよいのでしょうか?
よろしくお願いいたします

Aベストアンサー

罫線を引く
  ws.Range(Karist).Borders(1).Weight = 1
     Borders(1) → セルの左
     Borders(2) → セルの右
     Borders(3) → セルの上
     Borders(4) → セルの下
     Weight = 1 → 細線
Weight = 2 → 普通
     Weight = 3 → 太線
     Weight = 4 → 極太線
罫線の型
   ws.Range(Karist).Borders(1).LineStyle = 1
罫線の色
   ws.Range(Karist).Borders(1).Color = QBcolor(2)

QVBからExcelのセルの書式設定を変更する

Excelのセルに
 C2:2000/7/8 16:39:00
 C3:2000/7/9 8:30:00
と入っています。
これをExcel上で「=C3-C2」とすれば「1900/1/0 15:51」となります。
これを[セルの書式設定]-[表示形式]-[ユーザ定義]-[[h]:mm:ss]とすると、
[15:51:00]とう結果が得られます。
これをVB上から、Excelのセルを操作して求めたいのですが、可能なのでしょうか?

Aベストアンサー

こんにちは。maruru01です。

Excel2000、VB6.0とします。
まず、VBのメニューの[プロジェクト]→[参照設定]で、
「Microsoft Excel X.X Object Library」(X.Xはバージョン)
にチェックを入れます。(Excelオブジェクトを使用出来るようにする。)
それで、例えばフォームに[Command1]コマンドボタンを貼り付けて、そのクリックイベントで、次のようにすれば出来ます。
なお、予めExcelファイルを用意しておいて下さい。
そのファイルの"Sheet1"のC4の書式設定を変更します。


Private Sub Command1_Click()

  Dim xlApp As Excel.Application 'Excelアプリケーションオブジェクト
  Dim xlBook As Workbook  'Workbookオブジェクト
  Dim xlSheet As Worksheet  'Worksheetオブジェクト
  Dim ExcelFileName As String  'Excelファイルのフルパス

  ExcelFileName = "c:\Test.xls"

  'Excelブックを開く
  Set xlApp = CreateObject("Excel.Application")
  Set xlBook = xlApp.Workbooks.Open(ExcelFileName)
  Set xlSheet = xlBook.Worksheets("Sheet1")

  With xlSheet
    .Range("C4").Select
    Selection.NumberFormatLocal = "[h]:mm:ss"
  End With

  'Excelブックを閉じる
  xlBook.Close True
  xlApp.Quit
  Set xlSheet = Nothing
  Set xlBook = Nothing
  Set xlApp = Nothing

End Sub

あとは、ファイル名やシート名、セルなどを適宜変更して下さい。

こんにちは。maruru01です。

Excel2000、VB6.0とします。
まず、VBのメニューの[プロジェクト]→[参照設定]で、
「Microsoft Excel X.X Object Library」(X.Xはバージョン)
にチェックを入れます。(Excelオブジェクトを使用出来るようにする。)
それで、例えばフォームに[Command1]コマンドボタンを貼り付けて、そのクリックイベントで、次のようにすれば出来ます。
なお、予めExcelファイルを用意しておいて下さい。
そのファイルの"Sheet1"のC4の書式設定を変更します。


Private Sub Command1_...続きを読む

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QVB2010でExcelの行をコピーして挿入する

いつもお世話になります。

VB2010を使用してExcelのある1行をコピーして、コピーしたものを同じシートに挿入したいのですが方法がわかりません。

画像のように、35と36の行をコピーして、37と38に全く同じ物を挿入したいです。


サイトをしらみつぶしに探しましたが、私に理解できるサイトがヒットしませんでしたので、できればサンプルコードを教えていただけると嬉しいです。

下記のようにコードを書きましたが、コピペ状態でほとんど理解していません。

Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Shown
Me.Visible = False
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

'Excelブックを起動
xlBook = xlApp.Workbooks.Open("C:\test1.xls")
'Excelを表示
xlApp.Visible = False
'シートを指定
xlSheet = DirectCast(xlBook.Worksheets(1), Excel.Worksheet)
xlSheet.Activate()

'ここから
'
'
'
'
'ここまでがわかりません

' xlBook.Save() '上書き保存
xlBook.SaveAs("c:\test2.xls") '名前をつけて保存

xlBook.Close()
xlApp.Quit()
'終了処理

xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing
'テストが完了したらループ処理に変更する
Dim p() As Process = Process.GetProcessesByName("Excel")
p(0).Kill()
End Sub
End Class


エクセルのバージョンはExcel 2003です。

お手数おかけしますがよろしくお願いします。

いつもお世話になります。

VB2010を使用してExcelのある1行をコピーして、コピーしたものを同じシートに挿入したいのですが方法がわかりません。

画像のように、35と36の行をコピーして、37と38に全く同じ物を挿入したいです。


サイトをしらみつぶしに探しましたが、私に理解できるサイトがヒットしませんでしたので、できればサンプルコードを教えていただけると嬉しいです。

下記のようにコードを書きましたが、コピペ状態でほとんど理解していません。

Imports Microsoft.Office.Interop
Public Class F...続きを読む

Aベストアンサー

エクセル開放とエクセルを起動のSetの部分は、
.Netでは外してOKです。

解決できて良かったです(^o^)

答えが同じでも、いろいろなやり方がありますので、

これからいろいろチャレンジしてみて下さい。

QDataTableから条件を満たした行を別のDatatableへコピーしたい

VC#2005とSQLServer2005ExpressEditionでWindowsアプリケーションを作成しています。

データベースの中から1つのマスタテーブルのデータを呼び出すのにTableAdapterを使ってDataTableにデータをバインドしました。
そこから条件を満たしている行をすべて抽出して同じ型のDataTableにデータをコピーしたいのです。

ですから、DataTableは2つ用意しています。1つは上記の通りデータをバインドしていますが、もう1つは宣言しただけなのでまだ空っぽの状態です。
DataTableにはカラムが3列あり、その中の1列をグループIDとしています。
条件としてはグループIDが同じであるということです。
やりたいことは条件を満たしている行をすべて抽出して空のデータテーブルにコピーすることです。

どなたかご存知の方いらっしゃれば教えてください。
よろしくお願いします。

Aベストアンサー

C#だったんですね … さほど変わりないと思いますが

お使いのコードが提示されていないのでこちらで適当な変数をでっち上げております
現在お使いのコードを支障の無い範囲で提示しましょう

//元のデータテーブルがdtSourceとすると
// テーブル構造をコピー
DataTable dt = dtSource.Clone();
DataRow r = null;
foreach( DataRow dtRow in dtSource.Select("選択するための文字列"))
{
  r = dt.NewRow();
  for( int n = 0; n < dtRow.ItemArray.Length; n++ )
  {
    r[n] = dtRow[n];
  }
  dt.Rows.Add( r );
}
といった具合になると思います

# 前回の投稿中のstSorceはdtSourceの単なるミスです

QVBでエクセルに罫線を引くには?

VBからエクセルの表に罫線を引くようにしたいのですが、
使用しているVBが VB2010 Expressだからか、色々検索して試しても、
エラーが出てしまい、やり方が分からなくて困っています。

ちなみに関係ないとは思いますが、エクセルは2007を使用しています。

Aベストアンサー

こんばんは。

まずは基本的なことの確認をします。

・Excelへの参照設定はできていますよね?
 できてないなら、「ソリューションエクスプローラ」から該当のプロジェクトを右クリックし、
 「参照の追加」から「COM」タブで「Excel 12.0 Object Library」を選択して「OK」をクリックし
 ておいてください。

・VBでExcelを操作するのはなかなかやっかいです。Excelのマクロの記録は役には立ちますが
 そのままでは使用できません。

・また、いちいち「Select」しなくても罫線くらいは引けます。

以下のコードは、新しいExcelを開いてブックを追加し、Sheet1のA1:B2のセル範囲を太罫線で囲みます。

Imports Microsoft.Office.Interop.Excel
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim AppExcel As New Microsoft.Office.Interop.Excel.Application
AppExcel.Visible = True
Dim WB As Workbook
WB = AppExcel.Workbooks.Add
Dim WS As Worksheet
WS = WB.Worksheets(1)
With WS.Range("A1:B2")
With .Borders(XlBordersIndex.xlEdgeLeft)
.LineStyle = XlLineStyle.xlContinuous
.ColorIndex = XlColorIndex.xlColorIndexAutomatic
.TintAndShade = 0
.Weight = XlBorderWeight.xlThick
End With
With .Borders(XlBordersIndex.xlEdgeTop)
.LineStyle = XlLineStyle.xlContinuous
.ColorIndex = XlColorIndex.xlColorIndexAutomatic
.TintAndShade = 0
.Weight = XlBorderWeight.xlThick
End With
With .Borders(XlBordersIndex.xlEdgeBottom)
.LineStyle = XlLineStyle.xlContinuous
.ColorIndex = XlColorIndex.xlColorIndexAutomatic
.TintAndShade = 0
.Weight = XlBorderWeight.xlThick
End With
With .Borders(XlBordersIndex.xlEdgeRight)
.LineStyle = XlLineStyle.xlContinuous
.ColorIndex = XlColorIndex.xlColorIndexAutomatic
.TintAndShade = 0
.Weight = XlBorderWeight.xlThick
End With
End With
End Sub
End Class

こんばんは。

まずは基本的なことの確認をします。

・Excelへの参照設定はできていますよね?
 できてないなら、「ソリューションエクスプローラ」から該当のプロジェクトを右クリックし、
 「参照の追加」から「COM」タブで「Excel 12.0 Object Library」を選択して「OK」をクリックし
 ておいてください。

・VBでExcelを操作するのはなかなかやっかいです。Excelのマクロの記録は役には立ちますが
 そのままでは使用できません。

・また、いちいち「Select」しなくても罫線くらいは引けます。

以下のコ...続きを読む

Qラジオボタンの初期指定

ラジオボタンを12個使用する画面を今作っているのですが、初期立ち上げ時に1番目のラジオボタンを選択した状態にするのはどうすれば良いのでしょうか?

プログラムの流れ上選んでいなくても、1番目を選んだ状態に次のウィンドウは開くのですが、聞く話で、それは不安定要素があるって聞いた物ですから。

Aベストアンサー

VB.NETだったら
デザイン時に
Checkedをtrue

QMAX値を条件にデータを取得するには?

SQL文で困っています。
ご教授下さい。


下記のようなデータがあった場合、それぞれの区分毎に
年月が最大(最新)のデータを取得したいです。
(実際には1レコードにその他項目があり、それらも取得します。)
<検索対象データ>
区分 年月   金額
-----------------------------
A   200412  600
A   200503  560
B   200311  600
B   200508  1000
B   200504  560
C   200508  400
C   200301  1100


<取得したいデータ>

区分 年月   金額
-----------------------------
A   200503  560
B   200508  1000
C   200508  400

よろしくお願いします。

Aベストアンサー

テーブル名をXXXとすると次のようなSQLでよいと思います。(最善の方法かどうかは自信がないですが)

select B.* from (select 区分, max(年月) as 年月 from XXX group by 区分) As A
inner join XXX as B on A.区分 = B.区分 and A.年月 = B.年月
order by B.区分

QForm間の値の渡し方

1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。
実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。
因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。

Aベストアンサー

すでに何件か回答があがっていますので、少し変わった方法をご参考までに。

あまり使われませんが、Formにはtagというプロパティがあります。
これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。

FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。
ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。

複数の値を呼び出し元に戻してやる場合に、区切り文字(カンマなど)で連結した文字列をtagに格納し、呼び出し元で区切り文字でsplitして、複数の値を受け渡すという手法をよく使っています。

QTextBoxに半角数字のみの入力しかできないようにしたい

タイトルどおりです。
フォームに貼り付けた、TextBoxに、半角数字のみしか入力できないようにしたいです。
000000~999999までのコード(数字)を入力させるようにするわけですが、そのままだと半角英数も全角も入力できてしまいます。

GrapeCity社製のカスタムコントロール「InputMan」の“Number”を用いると簡単なのですが、これだとカーソルがボックス内の右端にきて、一の位から入力が始まってしまいます。
数字は、ボックス内の左側から入力されていくようにしたいのですが、“Number”だとなんか出来なさそう・・・?
(“Number”で左側から入力できるならそれがいいのですが)

そこで、TextBoxを使うことにしたのですが、TextBoxだと、半角数字のみしか入力できないような制限がかけるのかが、わかりません。

もし、お分かりの方がいらっしゃいましたら、ご教授下さいませ。

Aベストアンサー

コピペですみません。
VB6だと、

Private Sub TextBox_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyBack, Asc("0") To Asc("9"), Asc("-"), Asc(".")
Case &H1 ' Ctrl + A
TextBox.SelStart = 0
TextBox.SelLength = Len(TextBox.Text)
Case &H3 ' Ctrl + C
Case &H16 ' Ctrl + V
Case &H18 ' Ctrl + X
Case &H1A ' Ctrl + Z
Case Else
KeyAscii = 0
End Select
End Sub

で、いかがでしょうか。

コピペですみません。
VB6だと、

Private Sub TextBox_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyBack, Asc("0") To Asc("9"), Asc("-"), Asc(".")
Case &H1 ' Ctrl + A
TextBox.SelStart = 0
TextBox.SelLength = Len(TextBox.Text)
Case &H3 ' Ctrl + C
Case &H16 ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング