Excel VBA質問箱 IV

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

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


12298 / 13645 ツリー ←次へ | 前へ→

【11204】1行単位でデータを更新したい イマタツ 04/3/2(火) 14:53 質問
【11205】Re:1行単位でデータを更新したい Asaki 04/3/2(火) 15:00 回答
【11210】Re:1行単位でデータを更新したい イマタツ 04/3/2(火) 16:00 質問
【11211】Re:1行単位でデータを更新したい Asaki 04/3/2(火) 16:09 回答
【11213】Re:1行単位でデータを更新したい イマタツ 04/3/2(火) 18:12 質問
【11215】Re:1行単位でデータを更新したい Asaki 04/3/2(火) 18:33 回答
【11216】Re:1行単位でデータを更新したい イマタツ 04/3/2(火) 18:56 お礼
【11217】Re:1行単位でデータを更新したい アイエネス 04/3/3(水) 0:44 回答
【11221】Re:1行単位でデータを更新したい イマタツ 04/3/3(水) 9:11 お礼
【11252】Re:1行単位でデータを更新したい アイエネス 04/3/3(水) 21:34 回答
【11253】Re:1行単位でデータを更新したい Jカーター 04/3/3(水) 21:42 発言
【11255】Re:1行単位でデータを更新したい イマタツ 04/3/3(水) 21:52 お礼
【11256】Re:1行単位でデータを更新したい アイエネス 04/3/3(水) 22:00 回答
【11254】Re:1行単位でデータを更新したい Jカーター 04/3/3(水) 21:50 発言
【11267】Re:1行単位でデータを更新したい イマタツ 04/3/4(木) 9:20 お礼

【11204】1行単位でデータを更新したい
質問  イマタツ  - 04/3/2(火) 14:53 -

引用なし
パスワード
   はじめまして、イマタツと申します。

以下の件でお分かりになられる方、お手数ですがご回答を頂ければ幸いです。
宜しくお願い致します。

■質問
1セルごとにデータ更新をするのではなく、1行ごとにデータを更新することはできるのでしょうか?

■現状
現在、1行ごとにデータを抜き出すことは可能でした。
その逆ができるかと思い、配列にデータを入れ、Rowに入れこもうとするとエラーで帰ってきました。

【11205】Re:1行単位でデータを更新したい
回答  Asaki  - 04/3/2(火) 15:00 -

引用なし
パスワード
   こんにちは。

↓こんな雰囲気でしょうか?
Dim var as Variant

'1行目のA列からJ列の値を2行目に設定
var = Range("A1:J1").Value
Cells(2,1).Resize(,Ubound(var,2)).Value = var

【11210】Re:1行単位でデータを更新したい
質問  イマタツ  - 04/3/2(火) 16:00 -

引用なし
パスワード
   Asaki さん、メチャクチャ早いレスポンス有難うございます。

すいません、ちょっと質問が悪かったです^^;

正確にこちらのしたいことをお伝えしますと・・・

あるPJでExcelをデータベースとして置き、VBからレコードの更新を行いたいと考えています。
手順としてはVBでExcelのオブジェクトを開き、VBAにて1Rowを1レコードと考え、レコード更新を行おうと考えています。

単純に2次元配列の変数を1Rowに入れればいいのかと思っていたのですが、そんな甘くはなかったです・・・

なにか良い手はないでしょうか?
宜しくお願い致します。

【11211】Re:1行単位でデータを更新したい
回答  Asaki  - 04/3/2(火) 16:09 -

引用なし
パスワード
   >手順としてはVBでExcelのオブジェクトを開き、VBAにて1Rowを1レコードと考え、
>レコード更新を行おうと考えています。

>単純に2次元配列の変数を1Rowに入れればいいのかと思っていたのですが、そんな甘くはなかったです・・・

全データをループすればよいのでは?
どうやって、"更新"するのか良くわかりませんです。

【11213】Re:1行単位でデータを更新したい
質問  イマタツ  - 04/3/2(火) 18:12 -

引用なし
パスワード
   Asaki さん、何度もすいませんです・・・

>全データをループすればよいのでは?
>どうやって、"更新"するのか良くわかりませんです。

例えば・・・

DB_recode as Integer
DB_recode = ActiveWorkbook.worksheets("ワークシート名").Rows(1).Value

を実行するとワークシートの1行を丸ごと引っこ抜き、DB_recodeに配列で格納されます。

この逆パターンでをやりたいのです^^;

ある変数(配列)に値を複数個入れ込み、その値をワークシート上の1行に入れ込みたいのです。このことを私は更新と言っています。

どうでしょうか?できるのでしょうか?
ほんとうに・・・
ほんとうにお手数ですが、宜しくお願い致します。

【11215】Re:1行単位でデータを更新したい
回答  Asaki  - 04/3/2(火) 18:33 -

引用なし
パスワード
   >DB_recode as Integer
>DB_recode = ActiveWorkbook.worksheets("ワークシート名").Rows(1).Value
この例は、無理でしょう?
それとも、VBならOKなんでしょうか?

>ある変数(配列)に値を複数個入れ込み、その値をワークシート上の1行に入れ込みたいのです。このことを私は更新と言っています。
2次元配列なら、全データ一度に貼り付け可能ですし、
全行、全項目についてループすることもできるかと思いますが。。。

良くわかりませんが、ADOとかDAOとか使うと、SQLとか使えるかもしれません。
こちらは、まったく判りませんので、これ以上の回答は出来ません。m(_ _)m

【11216】Re:1行単位でデータを更新したい
お礼  イマタツ  - 04/3/2(火) 18:56 -

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

そうですか、やはり無理でしたか。
確かにループすればできるのでそちらのほうでやってみます!!!

色々とと有難うございました^^

【11217】Re:1行単位でデータを更新したい
回答  アイエネス  - 04/3/3(水) 0:44 -

引用なし
パスワード
   こんばんは
1行でよいのなら、

ActiveSheet.Range("A1:C1").FormulaArray = Array("A", "B", "C")

みたいなものでどうでしょう?

【11221】Re:1行単位でデータを更新したい
お礼  イマタツ  - 04/3/3(水) 9:11 -

引用なし
パスワード
   アイエネス さん、はじめまして^^

お答えいただいて有難うございます。

本当に私の文章表現がマズイのですが、この場合の”1行”とはPGソースの1行ではなく、Excelシート上の1行でして・・・
お答え頂いて申し訳ないのですが、ちょ〜っと意味が違います。

でも、お勉強になりました^^
有難うございます!!!

【11252】Re:1行単位でデータを更新したい
回答  アイエネス  - 04/3/3(水) 21:34 -

引用なし
パスワード
   エクセルの一行にデータを入れたいのですよね?
であれば、こういうふうに使えばいけるのではないでしょうか?

Sub test()
Dim i(2)
i(0) = "A"
i(1) = "B"
i(2) = "C"
ActiveSheet.Range("A1:C1").FormulaArray = i
End Sub

という意味でした。説明が足らなかったみたいですね。

【11253】Re:1行単位でデータを更新したい
発言  Jカーター  - 04/3/3(水) 21:42 -

引用なし
パスワード
   こんばんは。
それなら
ActiveSheet.Range("A1:C1").Value = i

で十分な気がします。

まちがっていたらごめんなさい。

【11254】Re:1行単位でデータを更新したい
発言  Jカーター  - 04/3/3(水) 21:50 -

引用なし
パスワード
   こんばんは。

やりたいことをもう少し具体的に書いてみてはどうでしょう?

たとえば
更新するデータはどんなものなのか
それから
ご希望の「更新」の使用前・使用後のシートの図などを

【11255】Re:1行単位でデータを更新したい
お礼  イマタツ  - 04/3/3(水) 21:52 -

引用なし
パスワード
   Jカーターさん、アイエネスさん、有難うございます。

なるほどですね^^

僕は
ActiveSheet.Row(a).Value = i

でいかせたかったのですが、上手くいきませんでした^^;

お二人が言われた手法をちょっと試してみたいと思います。

ありがとうございました!!!

【11256】Re:1行単位でデータを更新したい
回答  アイエネス  - 04/3/3(水) 22:00 -

引用なし
パスワード
   iの配列数を255にすればいいのではないでしょうか?
多分配列数を255以下にすると配列数以上の列はエラーになると思います。

【11267】Re:1行単位でデータを更新したい
お礼  イマタツ  - 04/3/4(木) 9:20 -

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

なんとかなりそうです^^

すいません、色々とお手数をおかけしました。

ありがとうございました!!!

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