Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9562 / 13646 ツリー ←次へ | 前へ→

【26625】スプレッドシートについて HITSUJI 05/7/12(火) 11:13 質問[未読]
【26627】Re:スプレッドシートについて IROC 05/7/12(火) 11:38 回答[未読]
【26639】Re:スプレッドシートについて HITSUJI 05/7/12(火) 17:12 お礼[未読]
【26641】Re:スプレッドシートについて IROC 05/7/12(火) 18:04 回答[未読]
【26640】Re:スプレッドシートについて HITSUJI 05/7/12(火) 17:19 質問[未読]
【26642】Re:スプレッドシートについて IROC 05/7/12(火) 18:05 回答[未読]
【26643】Re:スプレッドシートについて HITSUJI 05/7/12(火) 18:24 質問[未読]
【26644】Re:スプレッドシートについて ichinose 05/7/12(火) 18:40 発言[未読]
【26645】Re:スプレッドシートについて IROC 05/7/12(火) 18:47 回答[未読]
【26646】Re:スプレッドシートについて HITSUJI 05/7/12(火) 18:48 お礼[未読]
【26649】Re:スプレッドシートについて HITSUJI 05/7/12(火) 20:03 質問[未読]
【26650】Re:スプレッドシートについて りん 05/7/12(火) 20:27 発言[未読]
【26652】Re:スプレッドシートについて ichinose 05/7/12(火) 21:19 発言[未読]
【26656】Re:スプレッドシートについて りん 05/7/13(水) 2:13 発言[未読]
【26658】Re:スプレッドシートについて HITSUJI 05/7/13(水) 9:22 質問[未読]
【26682】Re:スプレッドシートについて ichinose 05/7/14(木) 6:46 発言[未読]
【26690】Re:スプレッドシートについて HITSUJI 05/7/14(木) 10:20 お礼[未読]
【26659】Re:スプレッドシートについて HITSUJI 05/7/13(水) 9:25 お礼[未読]

【26625】スプレッドシートについて
質問  HITSUJI  - 05/7/12(火) 11:13 -

引用なし
パスワード
   はじめまして。

マクロでデータベース(Access97)を取り込み、ユーザフォームで作成したスプレッドシートに表示させたいのです。
シートへの表示はできたのですが、スプレッドシートに表示することは可能なのでしょうか?

【26627】Re:スプレッドシートについて
回答  IROC  - 05/7/12(火) 11:38 -

引用なし
パスワード
   できますよ。

Spreadsheet1.ActiveSheet.Range("A1:B5").Value = Worksheets(1).Range("A1:B5").Value

【26639】Re:スプレッドシートについて
お礼  HITSUJI  - 05/7/12(火) 17:12 -

引用なし
パスワード
   ▼IROC さんへ
エクセルのシートからではなく、Access2000のデータベースからスプレッドシートに読み込みたかったのですが、Accessから一旦、エクセルのシートに読込、そのシートからスプレッドシートの表示させることにしました。
エクセルのシートからの表示時に参考になりました。
有り難うございましたm(__)m。

【26640】Re:スプレッドシートについて
質問  HITSUJI  - 05/7/12(火) 17:19 -

引用なし
パスワード
   すみませんm(__)m。
再び、HITSUJIです。

スプレッドシートの列の幅を設定したいのですが
シートの幅を設定するRange(" ").Columns.AutoFitは
スプレッドでは使用できないのでしょうか?

【26641】Re:スプレッドシートについて
回答  IROC  - 05/7/12(火) 18:04 -

引用なし
パスワード
   >Access2000のデータベースからスプレッドシートに読み込

mdbからADOを使ってデータを取得し、
配列変数を介してスプレッドシートに表示できます。


Dim myData As Variant
Dim x As Long
Dim y As Long

  '配列にデータを入れる。
  'ACCESSからのときは、ADOを使って配列にデータを取得すれば良い。
  myData = Worksheets(1).Range("A1:B5").Value
  
  x = UBound(myData, 1)
  y = UBound(myData, 2)
  
  With Spreadsheet1.ActiveSheet
    Spreadsheet1.ActiveSheet.Range(.Cells(1, 1), .Cells(x, y)).Value = myData
  End With

【26642】Re:スプレッドシートについて
回答  IROC  - 05/7/12(火) 18:05 -

引用なし
パスワード
   使えます。

Spreadsheet1.ActiveSheet.Range("A:B").AutoFit

【26643】Re:スプレッドシートについて
質問  HITSUJI  - 05/7/12(火) 18:24 -

引用なし
パスワード
   ▼IROC さんへ

度々ご回答有り難うございますm(__)m。
すみません、また教えていただけるでしょうか?
Spreadsheet1.ActiveSheet.Range("A:E").AutoFit
だと、「オブジェクトはこのプロパティまたはメソッドをサポートしてません。」と
エラーではじかれてしまうんです。

【26644】Re:スプレッドシートについて
発言  ichinose  - 05/7/12(火) 18:40 -

引用なし
パスワード
   ▼HITSUJI さん:
▼IROC さんへ
こんばんは。

Spreadsheet9.0ですよね?

  With Spreadsheet1.ActiveSheet
    .Range("a1:c1").EntireColumn.AutoFitColumns
    End With

こんなコードで可能だと思います。

>Accessから一旦、エクセルのシートに読込、そのシートからスプレッドシートの表示させることにしました。
9.0には、Copyfromrecordsetがないので
私もそうしていますが・・・・・。

私が注意しているのは、ExcelのワークシートとSpreadsheetでは
標準書式での有効桁数が違う事です。
まっ、これは何度か使っていれば 気が付かれることですが・・。
他には、文字列という書式ないので
これも工夫が必要な場合もあります。

【26645】Re:スプレッドシートについて
回答  IROC  - 05/7/12(火) 18:47 -

引用なし
パスワード
   >Spreadsheet9.0ですよね?

私は 11.0 でした。 ずいぶん違いがあるのかな・・・ 

【26646】Re:スプレッドシートについて
お礼  HITSUJI  - 05/7/12(火) 18:48 -

引用なし
パスワード
   ▼ichinose さんへ

お返事有り難うございます(T_T)。
とてもてんてこまい状態で作成してます・・・。
そうです!Spreadsheet9.0です!

教えていただいたソースで、列幅設定は可能になりました!!
有り難うございますm(__)m。


>私が注意しているのは、ExcelのワークシートとSpreadsheetでは
>標準書式での有効桁数が違う事です。
>まっ、これは何度か使っていれば 気が付かれることですが・・。
>他には、文字列という書式ないので
>これも工夫が必要な場合もあります。
今から、クリックされたセルの文字列を取得するヶ所のソースを
作成する段階にはいるのですが、はじめて知りました・・・文字列という書式が
ないのですね・・・。有り難うございます。気をつけて作成しようと思います・・・(不安)

【26649】Re:スプレッドシートについて
質問  HITSUJI  - 05/7/12(火) 20:03 -

引用なし
パスワード
   すみませんm(__)m。

あと二つほど教えていただきたいのですが、宜しくお願いいたしますm(__)m。

1.スプレッドシート内の1番上のセルとの境界線に線を引きたいのですが
  Spreadsheet1.ActiveSheet.Range("A1:E1").Select
  With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlDouble
    .Weight = xlThick
    .ColorIndex = xlAutomatic
  End With
では引けてません。
どこが間違っているのでしょうか?

2.任意の行の色を反転したいのですが、
   Spreadsheet1.ActiveSheet.Range.Rows(StrWk).Select
  With Selection.Interior
    .ColorIndex = 34
    .Pattern = xlSolid
  End With
ではエラーになります。
どのように直したらよろしいでしょうか?

よろしければ教えていただけないでしょうか?
宜しくお願いいたします。

【26650】Re:スプレッドシートについて
発言  りん E-MAIL  - 05/7/12(火) 20:27 -

引用なし
パスワード
   HITSUJI さん、こんばんわ。

>あと二つほど教えていただきたいのですが、宜しくお願いいたしますm(__)m。
例文とエラーの状況からして、Selectできない(Selectがない)のでは?

>1.スプレッドシート内の1番上のセルとの境界線に線を引きたいのですが
  With Spreadsheet1.ActiveSheet.Range("A1:E1").Borders(xlEdgeBottom)
>    .LineStyle = xlDouble
>    .Weight = xlThick
>    .ColorIndex = xlAutomatic
>  End With

>2.任意の行の色を反転したいのですが、
   With Spreadsheet1.ActiveSheet.Range.Rows(StrWk).Interior
>    .ColorIndex = 34
>    .Pattern = xlSolid
>  End With

これでは駄目ですか?
今、試せないので確実なことがいえなくてすみません。

【26652】Re:スプレッドシートについて
発言  ichinose  - 05/7/12(火) 21:19 -

引用なし
パスワード
   ▼りん さん、HITSUJI さん
こんばんは。
HELPを確認したほうがよいですよ!!
というより、これがないとコードが書けませんよ

  With Spreadsheet1.ActiveSheet.Range("A1:E1").Borders(ssEdgeBottom)
    .LineStyle = owcLineStyleAutomatic
    .Weight = 3
    .Color = RGB(0, 0, 0)
  End With

二重線は付けられませんよ!!太い線で我慢しましょう!!


  With Spreadsheet1.ActiveCell.EntireRow
    .Interior.Color = RGB(0, 0, 0)
    .Font.Color = &HFFFFFF
  End With

【26656】Re:スプレッドシートについて
発言  りん E-MAIL  - 05/7/13(水) 2:13 -

引用なし
パスワード
   ichinose さん、ありがとうございます。

>    .Color = RGB(0, 0, 0)

>    .Font.Color = &HFFFFFF

ColorIndexが無いんですね。

【26658】Re:スプレッドシートについて
質問  HITSUJI  - 05/7/13(水) 9:22 -

引用なし
パスワード
   ▼ichinose さんへ
有り難うございます!m(__)m。
線の引き方も、行の色を反転させることも分りました!!

HELPなのですが
Bordersで調べても、引数のssEdgeBottomが出てこず、
ssEdgeBottomだけだと、見つけられず・・・。
とても基本的なことだと思うのですが、
引数の調べ方をよろしければ
教えていただけないでしょうか?
いまいち、よくHELPを利用できずに、ネットで調べたりしてます。
宜しくお願いいたしますm(__)m。

【26659】Re:スプレッドシートについて
お礼  HITSUJI  - 05/7/13(水) 9:25 -

引用なし
パスワード
   ▼りん さんへ

ご回答有り難うございますm(__)m。
セルの指定などは、しています(しているつもりかもしれません(>_<)。)
何度も質問させて頂いているのですが、メソッドや、プロパティなどの使い方
・・・HELPの使い方がよく分っていないのが、問題のようです。
すみません。ご回答に感謝しております(__)””。

【26682】Re:スプレッドシートについて
発言  ichinose  - 05/7/14(木) 6:46 -

引用なし
パスワード
   ▼HITSUJI さん:
おはようございます。


>
>HELPなのですが
>Bordersで調べても、引数のssEdgeBottomが出てこず、
>ssEdgeBottomだけだと、見つけられず・・・。
あっ、本当ですね!! これは、HELPでは見つけられませんでした
(「HELPを見てください」と申し上げたのは 他のプロパティや
メソッドについて、例えばColorindexはないということがわかるので
申し上げたのですが・・)。

本来のワークシートとSpreadsheetのプロパティやメソッドが
よく似ている事は少し使用していくとわかりますよね?

よって、
  Spreadsheet1.ActiveSheet.Range("A1:E1").Select
    With Selection.Borders(xlEdgeBottom)
とすることは初動捜査としては(事件か?)私もやります。
xlEdgeBottomと言う定数が1なら エラーにならなかったのですが、
これは、9なのでエラーになります。

私は、ここで「Enum定数の値が違うんだ」とカンで考えます。

VBEの「表示」---「オブジェクトブラウザ」で
ライブラリ「OWC」を検索し、それらしいEnum定数がないか
調べます。

すると、
SheetBorderTypeEnum というのが見つかり、
その中に「ssEdgeBottom」=1 という事が発見出来ます。

従って、

  Spreadsheet1.ActiveSheet.Range("A1:E1").Select
    With Selection.Borders(ssEdgeBottom)

でめでたしめでたし・・・となるのですが・・・。

よって、

HELPと「オブジェクトブラウザ」の共用ということでいかがですか?

【26690】Re:スプレッドシートについて
お礼  HITSUJI  - 05/7/14(木) 10:20 -

引用なし
パスワード
   ▼ichinose さんへ

とても丁寧な解説有り難うございます!!!
オブジェクトブラウザの使い方、初めて知りました(>_<)。
何なのだろう?どう使うのだろう?と疑問に思っていました!
昨日、シートと同じように作ると(本の真似なんですが・・・)、
よくエラーになり、いろいろHELPを触ってみてプロパティやメソッドの
引っ張り出し方が分ってきました・・・。
こんな質問にもとても丁寧にお返事を頂き、すごく嬉しいです(^-^)。
有り難うございましたm(__)"m。

9562 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free