[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 08/01 06:58 / Filesize : 189 KB / Number-of Response : 699
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part15



1 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 01:07:19 ]
過去スレ
01 pc11.2ch.net/test/read.cgi/tech/1054356121/
02 pc11.2ch.net/test/read.cgi/tech/1168308855/
03 pc11.2ch.net/test/read.cgi/tech/1180192018/
04 pc11.2ch.net/test/read.cgi/tech/1189814602/
05 pc11.2ch.net/test/read.cgi/tech/1197448064/
06 pc11.2ch.net/test/read.cgi/tech/1205231499/
07 pc11.2ch.net/test/read.cgi/tech/1212587819/
08 pc11.2ch.net/test/read.cgi/tech/1219673793/
09 pc11.2ch.net/test/read.cgi/tech/1228372971/
10 pc12.2ch.net/test/read.cgi/tech/1235332603/
11 pc12.2ch.net/test/read.cgi/tech/1241885130/
12 pc12.2ch.net/test/read.cgi/tech/1247566074/
13 pc12.2ch.net/test/read.cgi/tech/1254281104/
14 pc12.2ch.net/test/read.cgi/tech/1262748898/ ←New!

関連スレ
Excel総合相談所 91
pc11.2ch.net/test/read.cgi/bsoft/1270542226/
Word総合相談所
pc11.2ch.net/test/read.cgi/bsoft/1263719084/
【質問不可】Excel総合相談所スレの雑談・議論スレ2
pc11.2ch.net/test/read.cgi/bsoft/1151651536/

159 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 17:05:55 ]
スタックっつうか配列以外のデータ構造がまともに扱えない

切り上げ切捨てはどっちも出来る

160 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 19:08:50 ]

実装できないwww


161 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 21:23:58 ]
糞言語だと思うなら、使わなければいいじゃん

162 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:24:00 ]

vbaは言語じゃねーよwww


163 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:44:06 ]
連休らしくなってまいりました
構ってちゃんの季節ですね

164 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:46:53 ]
ふぅ(´ω`)

165 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:47:53 ]
>>163
jukai-deep-ice.com/mono/nazo/kora.htm

166 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 00:43:54 ]
VBに足りない機能は
全部COMという万能倉庫から持ってくればいい。

167 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 09:57:52 ]
COM使うならExcel使う必要も無ければVBAを使う必要もない



168 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 10:40:35 ]
意味がわからない。
そもそもVBAのグローバルコンテキスト自体がOfficeのCOM(IDispatch)だよな。
で、VB(A)以外でCOMを使うということだけど、

他言語で書いたらどれだけコーディングが面倒かご存知?
まあ、WinOLE32とかいちいっちコーディングするのが面倒じゃなくて
ブラウザも要らないなら、どうぞって感じなんだけど。
あと、Excelと密に連携取れないね。

169 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 10:47:31 ]
え?

170 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 12:19:42 ]
ExcelというアプリのUIを丸ごと再現するのは面倒だし意味ないし
VBAだけではなかなかかゆいところに手が届かないし
事務員がExcelさわってる裏で事務作業の手伝いをさせるのがVBAの本来の使い方だから

171 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 12:41:39 ]
まあ、ここでExcelVBAを否定しても意味ないし

172 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 13:47:12 ]
たしかにRubyは面倒だな

173 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:30:42 ]
みなさん、普段はどんな言語を使ってるんですか?
・・・と聞こうと思ったけれど、ここは事務員のが多いって話でしたね。
ということは、VBScriptとかhtmlとかJavascriptとかのエンドユーザ向け言語ですか?

174 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:37:53 ]
またもや知ったかか

175 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:42:01 ]
ここで一番多いのは警備会社勤務
2ちゃんの質問スレで困ってる人を見つけたら助けるふりして雑談始めるのが仕事

176 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:46:30 ]
事務員だけどVBAできます・・・・というか、IT屋のPGとして開発経験があれば、
プロジェクト規模とかステップ数でPGとしての職歴をアピールできるのかもしれないけど、
そうでない場合はアピールしようが無いというか、何をもってできるとするのかよくわからん。

177 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:47:28 ]
>>175
自宅警備会社というやつですか?



178 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:01:55 ]
>>177
自室です。

179 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 16:14:27 ]
>>173
ネットが繋がらない環境でJava使ってる。
VBAは各種ファイルの生成とか、XMLやらブックの解析とか。

180 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 17:08:26 ]
お話に花が咲いているところ すみません。教えてください。

office2000 XP SP3 です。

PCのCOMポートから、RS232Cで文字を受信して、Excelシートに表示しています。

while(1)
  if (受信文字=あり) then
    Cells(y, 1).Value = 受信文字
    y = y + 1
  endif
wend
という感じです。
いい感じに動作するのですが、シートの一番下の行まで行って、
次の行を書くときに、スクロールしたいのですが、
画面1行スクロールをするには、どのような記述をするのでしょうか。

宜しくお願いします。

181 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 17:20:05 ]
officetanaka.net/excel/vba/tips/tips79.htm

182 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:08:21 ]
Application.Calculation = xlCalculationManual
で、関数の計算を止めた場合、

WorksheetFunction.Maxなどで関数をVBA内で使用(シートへの記載は無し)したら、
その計算結果を利用する判定時に誤作動したりするのですか?

やはり直前でxlCalculationAutomaticに戻さなくてはいけないのですか?

183 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:24:43 ]
お話に花が咲いているところ
嫌味言うなら質問するな


184 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 20:40:06 ]
気の利いたこと言おうとして失敗する人っているよね。
その一言が余計、という。

「へえ。君って○○大学出てるんだ」
「いやあどうしょうもないバカ大学でお恥ずかしい(謙遜のつもり)」
「……俺の息子はその大学を第一志望にして入学したんだよ(怒)」

185 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 21:11:20 ]
つ Ca

186 名前:180 mailto:sage [2010/04/29(木) 22:37:54 ]

どうもありがとうございます。大変助かりました。
VBAの命令は、何でもあるんですね。ビックリしました。おかげさまで、なんとか作れそうな感じです。

以下のような感じで、現在の画面の最下行数を計算して
  temp_str = ActiveWindow.VisibleRange.Cells(1, 1).Address ' 現在の画面の左上セルの座標「$A$123」を文字で得る
  n = InStr(1, temp_str, "$")                ' 左の$を見つける
  n = InStr(n + 1, temp_str, "$")               ' 右の$を見つける
  y = Val(Mid$(temp_str, n + 1, Len(temp_str) - n)) + Windows(1).VisibleRange.Rows.Count ' "123"を取り出し、画面の縦の数を加算
この行数と、次回の書込予定セルのy位置と比較してスクロールしながら、書き込んでいくつもりです。

ここで、もう少し教えてください。

上記の最下行の計算ですが、VisibleRange.Cells(1, 1).Address の返値が文字で返ってくるので、めんどうな文字計算をしています。
これが、直接数字で返ってくる命令はないものでしょうか。

temp_str = ActiveWindow.VisibleRange.Cells(1, 1).Address というのは、現在のアクティブウインドウに対しての命令だと思います。
しかし別シートを開いている時でも、文字書込は決まったシートに バックグラウンドで実行したいのです。
シート指定をすればいいと思って
a = Worksheets("AAA").VisibleRange.Cells(1, 1).Address
などと やってみましたが、エラーだと言われました。
どのように書いたら、バックグラウンドで実行できるのでしょうか。

よろしくおねがいします。


187 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:43:47 ]
>>184
その会話で気の利いたことを言った(つもり)のはどっち?



188 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:45:56 ]
>>186
a = Worksheets("AAA").Range(hoge).Cells(1, 1).Address


189 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 11:02:24 ]
>>186
Visibleってのは「見えている」範囲のこと。ウィンドウを「切り替えたら見えるだろう」範囲ではない。
だから裏画面では意味がない。

190 名前:180 mailto:sage [2010/04/30(金) 19:02:09 ]
教えてくださいますでしょうか。
cells(1,1) と range("A1")という、2つの表現方法がありますが、
forで回すことを考えるとcells(1,1)のほうが都合が良いと思います。
しかし、range()も使いたいことが多いです。
そこで、この(1,1)という値を"A1"に変換するような関数はあるのでしょうか?

現在は、
dim array as string
dim rng_str as string
array = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

x = 1
y = 1
rng_str = mid$(arry, x, 1) & format(y)

などとやっています。
何か1発でできる関数があると便利なのですが。


191 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 19:13:14 ]
>>190
アドレスとかじゃ本末転倒か

192 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 19:23:11 ]
そうですね。できれば、aaa = Conv(1,1)みたいな感じの物がVBAに備わっていることを期待しているのですが、
やはりむずかしそうでしょうか。

あと、もう1つよろしいでしょうか。
セルを選択するのと反対に、解除するのにはどのように書けばよろしいでしょうか。
選択は、セルの周囲の線が太く見えて、解除は、セルの周囲の線が太くなくなるということです。

選択 cells(1,1).select

解除 cells(1,1).Deselect と書いたら、叱られてしまいました。



193 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 19:43:52 ]
>>190
rng_str = Cells(Row, Col).Address(False, False)

とりあえずこうするといいよ。

194 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 21:17:14 ]
>>187
>その会話で気の利いたことを言った(つもり)のはどっち?
二つ目の鍵カッコだよ。

この会話では、相手が不機嫌になった理由を教えてくれたから、
「ああ、俺余計なこと言ったな」と本人も気づくけど、
普通は腹の中で「この野郎」と思ってもわざわざそれを伝える人は少ない。

結果、本人はずっと「俺ってユニーク」などと思い込んだまま、
他人をイラつかせ続けることになる。

まあ、俺のことなんだが。

195 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 21:59:14 ]
>>192
行列の変換は Chr(64 + y) & x
ただしZ列より右は表現できない
AA列以降もサポートしたいなら自分で関数を作ってモジュール化すればいい

セル選択の解除は不可能

196 名前:デフォルトの名無しさん [2010/04/30(金) 22:01:57 ]
>>192
一般機能で出来ないことはvbaでも出来ない。

シートの中で必ず1セルは選択されているものだから、vbaでもどこかのセルは選択しないとあかん

197 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 22:05:08 ]
何でもいいけどいい加減>>182に答えてくれよ!

さもないと自分で調べるぞ!!



198 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 23:29:49 ]
>>193
ありがとう。Row=1, Col=1 → A1 と出ました。ありがとう。
これで楽になりそうです。

>>195, >>196
>セル選択の解除は不可能
>シートの中で必ず1セルは選択されているものだから、vbaでもどこかのセルは選択しないとあかん
そうなのですね。ありがとうございました。
確かに、自分でExcel使うときは、どこす1箇所選択されています。
助かりました。ありがとうございました。


199 名前:デフォルトの名無しさん [2010/05/01(土) 15:32:28 ]
>>197
調べろよw
あと手動計算にしなくても再計算すればよろし
マクロの記録でF9だ

200 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 17:57:32 ]
ていうか再計算止めたからってWorksheetFunction
の計算まで止まるわけないだろ。
むしろ発想自体新鮮w

201 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:46:16 ]
         / ̄(S)~\  <                       >
       / / ∧ ∧\ \<  嫌なら見るな! 嫌なら見るな! >
       \ \( ゚Д,゚ ) / /<                       >
         \⌒  ⌒ /  ノ Y´`Y´`Y´`Y´`Y´`Y´`Y´`Y´`Y´`Yヽ
          )_人_ ノ  
          /    /
      ∧_∧ ■□ (    ))
     (   ; )■□  ̄ ̄ヽ
   γ⌒   ⌒ヽ  ̄ ̄ノ  ノ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|

202 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:37:18 ]
>>199-200
自分で調べるのが面倒だからこその質問スレだろうが!
情弱なめんな、ゆとりなめんな質問に答えてくれて本当にありがとうございました。

203 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:41:08 ]

冷静な自己分析だと思うぞ

204 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:25:26 ]
>>202
>自分で調べるのが面倒だからこその質問スレだろうが!
自分で調べてもどうしてもわからない時の質問スレだよ。
別に2chじゃなくとも、人に教えを請う時はそれが当たり前だと思うが。

205 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:59:03 ]

2ちゃんの画一的なコメント 乙

206 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 12:09:35 ]
てか教えてGooに行けばいいんだよな

207 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 12:47:44 ]
       -‐''''"´ ̄``ヽ、              ____
       /     _     ヽ        //´   __,,>、
     /        ̄ ̄   {        /::/ / ̄:::::::::::::::\
      l _ィニニア二二二ニヽ、j._      /::::l/::::::::::::::::::::::::::::::::l
     | 0Lj/-‐-レノ ノ_ヽ:::`ヽ     l:::::::::::/l/lノノ/_イ:::::l
     レ:r、/ イ゚テ   ピト`|::|      l:::::::::/ rtテ、  .ィtq l::::::|
      l:lヘ  '"   ,j  '"/ノ      |::lヘ!j  ´  ,j   !;:::/
     ヽヽ、   r‐-,   /'         レリー 、    ,....,  lノ/
        lヽ、  ̄ /         `ヽ、lヽ 、  ̄ /´
     _,r┴‐-`v´-‐j-、__   , -‐-、_r┴─'ー‐チト       バルス!!
  / ̄/:.:.:.:| ̄ ̄`T ̄´|:.:.:.:l´ `ヽ /    ヽ ̄`ー-‐'´`''''⌒ヽ
/   ,':.:.:.:.:.l    l   l:.:.:.l    \  _r‐、-、-、r,    、   ',
     |:.:.:.:.:.:.!     !   !:.:.l   ,. -‐ゝ/// 〉 〉 〉 〉 〉    !   ',
    l:.:.:.:.:.:.l     |   l:.:.:l  /  人〈〈〈〈 ' ' ' /っ   l    l
    l:.:.:.:.:.:.!     !   l:.:.:.ト/   /  ```´-ァ‐'''"     /   l
、__/:.:.:.:.:.:l     |    |:.:.:ヽヘ  l    //         / _ ィノ
    /:.:.:.:.:.:.:!    l   |:.:.:.:.:l `ーヽ、_ノ´l、______/lニ二」
____l:.:.:.:.:.:.:.|      l   |:.:.:.:.:!        |_  ( ( ) )_〕|   l
   l`ー‐‐'匸二l ̄ ̄l二フーイ       /   ̄ `‐‐'´ ヽ  |



208 名前:デフォルトの名無しさん [2010/05/02(日) 15:58:59 ]
> 意思決定までコンピューターが出来るようになると、
> 人間自体が必要なくなる。

今でもほとんど「意思決定」に人間なんか要らないだろ。

1. 提案者「こんなアイディアがあります」
2. 決定者「費用対効果を数字で示せ」
2. 提案者「費用が○○円、利益が△△円を見込んでいます」
3. ○○ < △△か?
   true → 4.へ
   false → 5.へ
4. 決定者「そのアイディアを採用する」
   → 6.へ
5. 決定者「そのアイディアを却下する」
   → 6.へ
6. 決定者「次のアイディアはなんだ?」

結局のところ、「意思決定」(笑)とやらをやる人間はこんなロジックで動いているんだから、
人間なんかおく必要ない。Excelどころか、20年前のPCでBASICで組んでもいいレベル。

「費用対効果を出せ」「数字で示せ」「説明責任を果たせ」、って言うと非常に説得力が
あるように見えるけど、実は判断基準のなすりつけなんだよね。

209 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 17:06:47 ]
>>208
んじゃそのプロセスをマクロで表現しなよ

210 名前:デフォルトの名無しさん [2010/05/02(日) 21:18:22 ]
質問させてください。

A列にx軸の値、B〜H列に7系列分のy軸の値が書いてある表で、
A,B列の値を選択してグラフを書かせるとA列をx軸、B列をy軸(系列1)としてくれるのですが、
A〜H列の値を選択してグラフを書かせるとx軸はblankで、A〜H列全てがy軸(系列1〜8)になってしまいます。
A列をx軸にして7系列分のグラフを書くにはどのように工夫したらよいでしょうか。

211 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:54:14 ]
あなたは知らないのですか?

212 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 13:25:00 ]
>>210
グラフの種類を散布図にして
元データの設定ウィンドウでY軸からA列を消して、X軸にA列を追加

213 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 21:21:37 ]
エクセルのサイズが500MBに届きそうなんだがこんなもんか?

214 名前:デフォルトの名無しさん [2010/05/04(火) 22:22:06 ]
こんなもんかと聞かれても困るな w
まぁ常識的に考えて肥大しすぎだとは思うが w

215 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 22:53:39 ]
peiyorin.cocolog-nifty.com/blog/2007/09/excel_1635.html

これ以外にもシートをコピー→新しいブックの新しいシートに貼付け も効果があるらしい
(シートタブからのシートのコピー はダメ)

216 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 23:40:10 ]
>>215
それやると、セルの幅はコピーされない(初期状態のまま?って言うの)んと違うかったっけ?

217 名前:デフォルトの名無しさん [2010/05/04(火) 23:50:05 ]
>>216
? 普通に書式も一緒にコピーできるけど?



218 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 00:33:09 ]
ページ設定がコピーされないんでそのまま印刷するとおかしくなるだけ

219 名前:デフォルトの名無しさん [2010/05/05(水) 12:47:49 ]
>>210
Excelは、変なお節介があり、ユーザーは動作の予想ができないので、
覚えにくいし、使いにくいですよね。

さて、具体的な方法は自分で考えてもらうとして、イメージを説明します。
グラフを作るとき、多くの場合は、希望するデータ範囲を囲って、
グラフボタンで進んで行って「グラフできたぁ」となるワケですが、
これは、EXcelのお節介な自動機能でグラフを作っているだけなので、
覚え始めのころは「このやり方が全てだ」と思い込んでしまいます。
僕もそうでした。しかし、この方法では、いつかは行き詰まります。

本来あるべき論としては、「この列のデータを、あの列のデータに対してグラフ化したい」だと思います。
このやり方が、本当のグラフ作成なのですが、
Excelのお節介で、私たちは、それが想像しにくいようになっています。

範囲を選択して、グラフボタンで、グラフウィザードを進んで行きますが、
そのウィザードの途中に、次のような画面が出てきます。
mcnc.hp.infoseek.co.jp/cgi-bin/img-box/img20100505123431.png
この画面では、すでにEXcelが勝手に選んだ「系列1,系列2」というY軸の値が選ばれています。
まずこれを削除します。そして、その右側の「Xの値」「Yの値」の所の文字も消して、
その枠の右側の三角?っぽいボタンを押します。
すると、ウィザードを開いているのに、なぜかシートに触れてしまいますので
自分の好きなY軸の範囲を選択します。同様にして、Xの値も範囲を指定します。
これで、EXcelのお節介なく、自分の好きな軸に、自分の好きな範囲を指定してグラフが作れます。

この方法は、既に出来上がっているグラフに対しても可能でなので、
自分で調べて見てください。

僕の思うグラフの作成は、「これをXに、これをYに」という指定をするのが正しい方法、
というかユーザーがイメージできる作成方法だと思っています。
Excelやワードのお節介が減ることを期待したいです。

220 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 13:32:18 ]
VBAの話をしろボケ

221 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 00:23:24 ]
>>219
なかなか面白い話しやけど、確かにスレ違い。

222 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 17:44:55 ]
配列に数が入っている状態で,
平均値などを計算したい場合,
一度,シートに書き出してエクセルのaverage関数を使うしかないのでしょうか?

223 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 17:47:19 ]
いいえ

224 名前:222 mailto:sage [2010/05/08(土) 17:55:03 ]
>>223
すいません

自分で関数を定義したくはないのですが
そのようなサブルーチンがvbaにも実装されているのでしょうか?

225 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:11:12 ]
WorksheetFunction.Averageって配列を受け付けられなかったっけ?

226 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:49:16 ]
配列できるね。

227 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:13:10 ]
セルにAddCommentで複数行のコメントを入れようとしてます。
vbNewLineで改行していれようとすると5行までしか入りません。
無限にいれれるようにするにはどうしたらいいでしょうか?



228 名前:222 mailto:sage [2010/05/08(土) 19:13:18 ]
例えば,
配列 a[100]
を定義したとして,a[10]からa[i]までの平均値をだしたいのですが
excelの関数で大丈夫ですか・

229 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:24:00 ]
>>228
じゃあ、10〜iまで回せばいいじゃん

230 名前:222 mailto:sage [2010/05/08(土) 19:49:42 ]
>>229
可変長の部分をa_temp というdouble型の配列を作成,そこに格納し
ave = WorksheetFunction.Average(a_temp)
としても 0 しか返ってきません.
何か間違っていますでしょうか?

231 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:50:24 ]
平均ぐらい自分で出せよカス

232 名前:222 mailto:sage [2010/05/08(土) 20:13:58 ]
>>231
枯れたサブルーチンがあるなら自分で書くよりミスは圧倒的に減るはずですよね.
なんとかなりませんか

233 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 20:15:05 ]
この程度でミスしてる時点で他のあらゆるコードが信用出来ない。おまえさんはもう諦めろ

234 名前:222 mailto:sage [2010/05/08(土) 20:19:47 ]
>>233
vbaは何分初めてなもんで
よろしくお願いいたします

235 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 20:23:10 ]
何事もほどほどにな

236 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 20:45:32 ]
>>227
気のせいでした

237 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 01:21:50 ]
>>234
とりあえず、作ったプログラムを丸ごと貼り付けて



238 名前:222 mailto:sage [2010/05/09(日) 09:59:16 ]
お騒がせしました.
求めた平均値を入れる変数の型をlong型にしていたため,
常に0となっておりました.
double型に変えると無事動作しました

ありがとうございました

239 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 15:56:22 ]
あるブックでマクロ実行中、他のブックを操作する方法ないですか?

240 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 17:08:43 ]
>>239
もう少し詳しく書かなきゃわからんよ
他のブックを操作するとは例えばどんな事?

また、あるブックでマクロ実行中て書いてるけど
どんな処理をしている時を想定しているの


241 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:07:08 ]
>>240
イメージとしてはExcelの二重起動でしょうか
マクロの実行中ってほかのエクセルの編集作業が全くできないと思うんですが、それをできるようにしたいです。

242 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:16:36 ]
そのまんま、Excelを2重起動すればいい。

243 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:25:38 ]
>>239
取りあえずDoEventsでも入れてみれば

244 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 19:48:48 ]
>>242-243
質問が悪かったです。ちょっと出直してきます

245 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 20:11:42 ]
自己解決

246 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 08:04:51 ]
phpのmysql_connect()関数が使えません。
環境は、
windows7
Apache2.2
PHP5.1
mysql server 5.1
です。
普通のphpファイルは開けるのですが、
mysql_connect()を使うとブラウザでページを表示できなくなります。
なぜでしょうか?

247 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 08:07:15 ]
すいません。誤爆しました



248 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 23:22:47 ]
図がないシートなのに、保存しようとすると
「図が大きすぎます」エラーが出るのは
どんな理由が考えられますか?

VBAがたくさん使ってあるシートです。
でも、図の類は何もありません。

249 名前:デフォルトの名無しさん [2010/05/12(水) 04:09:28 ]
スタックが小さくて、まともな業務ソフトつくれないよ。
マイクロソフトは、あいかわらず、いつまでもユーザー泣かせのことやってる。



250 名前:デフォルトの名無しさん [2010/05/12(水) 04:12:14 ]
これだけメモリー搭載が増えてる時代なのになんでスタックを大きくしないのか
不思議でしようがないいよ。
故意にユーザーを苦労させ、エラー出るように設計してるとしか思えない。


251 名前:デフォルトの名無しさん [2010/05/12(水) 04:14:37 ]
なんか、日本語版だけ故意にスタック小さくしてるような感じする。


252 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 07:36:24 ]
スタックが増えても、落ちるまでの時間が多少伸びるだけじゃねえのw

253 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 12:40:58 ]
VCのスタックサイズのデフォルトは1MBなんだが、VBAではどのくらいなんだ?

254 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 13:04:22 ]
条件式について質問です。

処理対象データ ↓

A B C D
1 あ い う
1 あ い う
2 あ い う
3 あ い う
3 あ い う
4 あ い う
4 あ い う
4 あ い う

というデータがあるとします。

A列の値が同じである間、同じSheetにデータを出力できるようにし
A列の値が異なる場合になったならば、別シートに出力変換したいんだけども
何かアドバイスを貰えませんか。

255 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 13:11:08 ]
>>254
Aを上から見ていって、
前の値と比較すればいいでしょ。

Set procRange = [A1]
Set outputSheet =
While procRange <> ""
 If procRange.Offset(-1) <> procRange Then


 Set procRange = procRange.Offset(1)
Wend

256 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 13:13:32 ]
途中で投稿されちゃった
動かせる環境ないから適当に直せ

Dim procRange As Range
Dim outputSheet As Worksheet

Set procRange = [A1]
While procRange <> ""
 If procRange.Row = 1 Then
  Set outputSheet = Worksheets.Add
 ElseIf procRange.Offset(-1) <> procRange Then
  Set outputSheet = Worksheets.Add
 End If

 ' なんか適当な処理

 Set procRange = procRange.Offset(1)
Wend


257 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 13:21:31 ]
>>256
返答ありがとうございます。
高度な文面なので検索してちょっと理解深めます。
Offset〜〜に解決の糸口を見つけられそうなので
イジイジしてきます。ありがとおおおおおおおお



258 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:19:08 ]
教えてください。

質問の概要
ワークシートの変更を禁止したいです。

説明
・シート内にあるボタンを押すと計算が始まります。
・その計算は、そのシート内のセル内容を読込んで計算するので、シートを変更されると、困ります。
・そこで、計算している間は、シート変更を禁止させたいです。

計算中にシートタブがクリックされたら、このような動きにしたいです。
 メッセージボックスを表示して「今はダメよ」と表示する
 もしメッセージボックスを表示することで、計算が狂ってしまうなどの問題があるのなら、
 最低でも、シート変更を無視、無反応にし、計算を安全にしたいです。

どのようにすれば良いでしょうか?

宜しくお願いします。


259 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:21:51 ]
Application.ScreenUpdateing = Falseじゃだめなの?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<189KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef