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


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

Excel VBA 質問スレ Part23



1 名前:既定のプロパティさん mailto:sage [2012/01/29(日) 00:05:13.16 ]
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/
15 pc12.2ch.net/test/read.cgi/tech/1271261239/
16 hibari.2ch.net/test/read.cgi/tech/1280045912/
17 hibari.2ch.net/test/read.cgi/tech/1289182437/
18 hibari.2ch.net/test/read.cgi/tech/1298240666/
19 hibari.2ch.net/test/read.cgi/tech/1305754555/
20 hibari.2ch.net/test/read.cgi/tech/1312435844/
21 hibari.2ch.net/test/read.cgi/tech/1316931607/

前スレ:
Excel VBA 質問スレ Part22
toro.2ch.net/test/read.cgi/tech/1322400978/


2 名前:既定のプロパティさん mailto:sage [2012/01/29(日) 00:06:07.26 ]
ExcelのVBAに関する質問スレです

★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。

★2 ExcelのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。

 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)

3 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 11:38:40.69 ]
>>1

4 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 12:22:48.13 ]
>>1

それにしても前スレ最後の方ときたら次スレ案内どころか、くだらない喧嘩でスレを埋め尽くすんだから、
やっぱVBAは厨房言語と言われても仕方が無いほどの民度の低さを実感する

5 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 12:44:37.54 ]
なんで終わった話蒸し返すかなぁ。
そんなに悔しかったのか?

6 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 12:48:28.90 ]
>>1

>>4
何で蒸し返すかなぁ・・・
そういうのが呼び水になるんだって気付けよ

7 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:34:17.40 ]
>>6
お前も同罪

8 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:20:07.91 ]
>>7
それはむしろ>>5だろ

9 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:12:08.40 ]
ID付けない辺りが民度の低さだろ

10 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:23:14.35 ]
vba初心者です。
フォームに名前、番号、部署を入力して、登録ボタンをクリック。
A2に値が入っていない場合はその列に項目を追加。
もし入っているならば、次の行へ移動してもう一度条件分岐開始。
というプログラムをつくろうと思ったのですがうまくいきません。
どこがおかしいのでしょうか。初歩的な内容ですがヒントください。



Private Sub 登録_Click()
If TextBox1 = "" Then
MsgBox ("名前が記入されてない")
ElseIf TextBox2 = "" Then
MsgBox ("番号が記入されてない")
ElseIf TextBox3 = "" Then
MsgBox ("部署が記入されてない")
Else

Cells(2, 1).Select

Do While ActiveCell Like ""
ActiveCell.Offset(1, 0).Select
Loop

ActiveCell = TextBox1.Value
ActiveCell.Offset(0, 1) = TextBox2.Value
ActiveCell.Offset(0, 2) = TextBox3.Value

Me.Hide
End If





11 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:54:35.81 ]
>>8
>>5

12 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:54:59.15 ]
>>10

> Do While ActiveCell Like ""
ここ
「もし入っているならば」になってない

13 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:56:31.43 ]
>>10
いろいろ突っ込み所満載だが
とりあえずWhileをUntilにすれば問題は解決すると思う

14 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 19:59:04.90 ]
>>11
>>5

15 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:03:30.24 ]
相当悔しかったらしい。(w

16 名前:デフォルトの名無しさん [2012/01/29(日) 20:06:22.65 ]
>>12
>>13
わかりました!
ありがとうです!

17 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:09:04.16 ]
>>4-8>>11>>14-15
ほんともういい加減にしてくれない?
大概うざいんですけど。


18 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:15:05.89 ]
俺は
Do While 〜、Do Until 〜、Loop While 〜、Loop Until 〜
は一切使わない

必ず
Do
  If 〜 Then Exit Do
Loop
を使う

While & Untilで出来ることは全て出来る
While & Untilには出来ないことも出来る
わかりやすい
修正しやすい
条件内容によっては速い

良いことずくめ

19 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:19:48.99 ]
いきなりなんだ
好きにしたらええがな

20 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:22:43.73 ]
>条件内容によっては速い

これ詳しく教えてください。
どういうときに速くできるのですか?



21 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:22:54.82 ]
いきなりじゃないじゃん。
つい数レス前の質問で間違いがあった部分の話題じゃん。

もしかして前スレからの下劣なケンカにご執心で
それ以外の質問回答とか目に入ってないのか?

22 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:27:46.68 ]
>>21
いや、質問の内容と一切関係ない話だろ
コーディングスタイルの話なんか不毛だし荒れるだけ

23 名前:20 mailto:sage [2012/01/29(日) 20:34:33.04 ]
>>22

すいません、>>18さんのレスはVBA初心者としては関心ある話題なのですが・・・

24 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:50:18.21 ]
>>18
同じく初心者としては興味ある
DOとLOOPの2つと
それにwhileかuntilのどちらかの3つがセットなのかと思ったんだけど違うのか

25 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:57:42.84 ]
相変わらずスレチの話題で伸びてるな

26 名前:20 mailto:sage [2012/01/29(日) 21:03:22.50 ]
>>24さん
Do Loop だけで成立しますよ。
ただ、そのままだと無限ループなので何らかの脱出条件は必要ですから
通常はおっしゃるとおりにUntilやWhileを組み合わせる訳ですよね。
で、>>18さんはIf文で脱出条件を設定することを推奨されていて、
私はその手法自体は知ってたのですが、
そのほうが速くなる状況というのが分からないのでぜひ知りたいと思いました。

27 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:13:22.59 ]
無理やりWhile/Untilの条件をでっち上げる位なら、
Exit Doするコードを書くほうが良い、ってことじゃね?
機械的に適用するのは頭が固すぎると思うが。

28 名前:デフォルトの名無しさん [2012/01/29(日) 21:19:41.12 ]
>>10のコードを
DO ifで書きなおして無事動きました。
確かにこっちのほうがわかりやすい気がします!
ありがとうです!

29 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:24:42.27 ]
俺もDo Until の中に必ず If Then Exit Do End Ifを付けてる
For Next なら Exit For だな

明示しておけば(自分にとって)判りやすいという理由だけど

30 名前:20 mailto:sage [2012/01/29(日) 21:26:33.22 ]
>>27
それって速度は変わらなくないですか?
自分でちょっと考えたのは脱出条件でAndを使うときに
UntilやWhileだとAndしかだめだけどIf文だとIfのネストで書けるから
(本当にほんのちょっとだけ)速く出来るかも、ということです。



31 名前:20 mailto:sage [2012/01/29(日) 21:32:26.12 ]
        ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこい>>18
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |

32 名前:20 ◆dMgj9t5wQ2 mailto:sage [2012/01/29(日) 21:46:15.53 ]
>>31
成りすましは勘弁してください
私は31じゃないです。

33 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:09:06.08 ]
>>29
>明示しておけば(自分にとって)判りやすいという理由だけど

意味がわからん。

Do While 〜 Loop も Do ... Loop Until 〜 も、「〜」で充分明示的だと思うが。

まあ、ループ中で読み込みとかの処理をして、EOF ならぬけて、そうでなければ
読み込んだデータの処理をして最初に戻ると言うような処理は、それなりにあるから
Do: ... : If 〜 Then Exit Do: ... : Loop も使うけど、それに限定するのは >>27
言うようにちょっと頭固すぎと思う。

34 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:49:12.41 ]
冗長に書いた方がわかりやすいと感じる人は結構いるっぽいね。
でも>>29は同じ条件判断を2箇所に書く(2回やる)ってことでしょ? それはないわー。

35 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:20:23.79 ]
>>10
ActiveSheet.ShowDataForm
マジオススメ

36 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:57:52.46 ]
>>34
>でも>>29は同じ条件判断を2箇所に書く(2回やる)ってことでしょ? それはないわー。

さすがにそれはないと思うが...、修正面倒だし、
そもそも他人が見たときヘタすると意図汲み取れないと思う。

37 名前:デフォルトの名無しさん [2012/01/30(月) 00:27:10.99 ]
>>35
使ってみたのですが、よく意味がわかりません。
起動時にフォーム呼び出しっぽいのですが、何もおこらないのですが
どういう効果があるのですか?

38 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 06:53:15.42 ]
>>37
聞く前にググれ

39 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 03:33:06.65 ]
Test

40 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:37:41.24 ]
2003/2007で質問です。
.OnAction で文字列を使うときにはどうすれば良いのでしょうか?
例えば、キー "foo" を持つ "dic" というディクショナリを引数とする関数を
.OnAction に指定したい場合、

Sub Menu()
 Dim CB
 Set CB = Application.CommandBars("Cell").Controls.Add()
 With CB
  .Caption = "テスト"
  .OnAction = "'testfunc dic(""foo"")'"
 End With
End Sub

のようにしてもうまく動きません。

仕方が無いので、

  val = dic("foo")
  .OnAction = "'testfunc " & val & "'"

のように対処しています。

よろしくお願いします。



41 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 07:37:32.24 ]
OnActionの実行されるスコープでは、
dicが見えていないって事なんじゃないか?

42 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 07:58:29.15 ]
OnActionに指定するのはマクロ名
式は評価しないんだろ

43 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:04:08.03 ]
OnActionは罠が多いよな…

44 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:12:34.88 ]
>>40
>  val = dic("foo")
>  .OnAction = "'testfunc " & val & "'"
これで対処できるって事は
.OnAction = "'testfunc " & dic("foo") & "'"
で済む話のような気もするが…まさかな

45 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:22:00.23 ]
&を使わずに書きたい、ってことじゃない?

46 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:22:58.83 ]
>>42
評価されるよ

47 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 03:05:03.67 ]
式を評価した結果の文字列をOnActionに設定してるだけで、
OnActionに式が設定されて評価されてるわけではないと思うが


48 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 06:49:11.59 ]
バカ多すぎw
このレベルのことで意見割れるとかあり得ねぇw

49 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 08:01:58.10 ]
詳細な仕様を知っている>>48がいると聞いて

50 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 08:18:33.01 ]
>>49
いや所詮草ガキだから



51 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 22:23:01.17 ]
草=複数の連続する"w"

1個の場合、複数でも連続でもないから、実は草ではない

52 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 22:49:35.37 ]
>>51
さすが小学生だな
目のつけどころが違う

53 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 23:18:44.34 ]
>>51
それは単草といって草の一種なのよ

54 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 23:34:57.87 ]
マクロから別名保存のダイアログを出して、ユーザーにブックを保存してもらおうとしているのですが、
ダイアログおw表示させた時に初めての保存ならマイドキュメント、2回目以降なら前回のフォルダーを
表示されるようにするにはどうすればいいでしょうか?
よろしく御願いします。

55 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 02:11:09.99 ]
>>54
まず仕様をしっかり確定させないとプログラミングはできないぞ

初めてかどうかはどうやって判別するんだ?
前回のフォルダはどこにどうやって保存するんだ?

これが答えられない(わからない)ってなら、もうちょっと詳しく状況を書かんとなんとも言えん

56 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 06:32:53.23 ]
>>54
初めての保存→直接Excelを起動しての作成
2回目以降→既存のBookを呼出し修正保存

意味はこれで合っている?
1年1組成績表フォルダの1月成績結果というBookを呼出して新規作成を選んだ時の保存先もやはりマイドキュメント?
或いは2月成績結果にBook名に流用変更して保存する場合は?

57 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 06:16:46.60 ]
>>53
残念、ハズレ

というか、そもそも「単草」なんてないから

草=複数の連続する"w"
   数が複数と定義されているので、単数を表す接頭語を付けることは無い

芝="w"そのものであり数は関係ない
   数が定義されていないので、数を表す接頭語を付けることもある->単芝、複芝

「単草」ってのは君と同じく、単芝と草を混同した勘違い君が
思いつきで口にするだけで、定義としては存在していない

58 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 07:16:08.51 ]
>>57
どっちでもええやん
言葉とはそういう勘違いから定着するもんだよ

正しい日本語は〜と言ってる学者連中はただの馬鹿だぞ
もう広まってる用法ってのは正しいものとしていかんと

59 名前:デフォルトの名無しさん [2012/02/04(土) 07:16:34.18 ]
>>57
そもそも「草」とか「芝」とかが定義されてるってどこで?
少なくとも非ネットの日常生活においてwを草とか芝とか言わない訳だが。
単にネット上のコミュニティーで認知されてると「君個人が認識してる」だけでしょ。
だったら「単草」だっておkじゃないの?
その辺の線引きが曖昧すぎだよ

ちなみに>>53ではありません。
草とか芝の定義とやらにも興味ないです

60 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 08:03:57.05 ]
ネタ解説に釣られ杉wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww



61 名前:デフォルトの名無しさん [2012/02/04(土) 09:02:23.24 ]
言い負かされるとネタで逃げる奴

62 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 09:14:49.65 ]
かまうなよ
これは僕はレス乞食ですって自己紹介をしてるだけなんだからwwww

63 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:15:29.22 ]
>>58
いい訳必死だな

あのさ、誤用と、新語や新たな言い回しを一緒くたにしてないか?
別に既存の日本語以外は使っちゃだめとは言わないけど、
間違いを内包する言葉までまとめて「定着すればそれは正しい」なんて言うのはただの馬鹿だぞ

wを芝と呼ぶのは良いが、wをエックスと呼ぶのは明らかな間違いだろ


>>59
> 「w」の文字が並ぶ様子が「雑草が生えているように見える」というところから、
            ~~~~~~
> 「w」を多数並べて笑いを表現する行為を「草を生やす」と呼ぶ場合がある。
      ~~~~~~~~~~~~~

> 草 - ネットスラングでwwwwwwwのこと。


> 草:インターネットスラングのひとつ。(笑)の略であるwを多数書き連ねることで蔑笑を表したもの。
                                                ~~~~~~~~~~~~~~~~~

どこを見ても、「並ぶ」「多数」「書き連ねる」と複数であることを説明し、例としても7連のものが上げられている
因みに上記は独断と偏見入り交じる個人サイトの記事ではなく、ウィキペやニコペなど大手の手がける辞典の記事ですよ

64 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:42:23.74 ]
荒らすなら他へ行け、馬鹿

65 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 11:04:08.52 ]
こういう話題しかレスできないんだろ。
スルーしとけ。

66 名前:デフォルトの名無しさん [2012/02/04(土) 11:44:22.68 ]
wikiが定義ってアホかと

67 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:21:17.58 ]
広辞苑だって出版された当時のスラングを個人の独断で大量に収録してんのに
それは信頼してWikipediaをバカにする男の人って本質がわかってないってゆーか、頭悪いよね

68 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:41:55.07 ]
反射的に wiki を馬鹿にする奴もどうかと思うが、
広辞苑が個人の判断で作られてるって、これまた
頭悪い以前のアホが来たな。


69 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 17:37:20.46 ]
wikiをバカにしてるんじゃなくて、wikiがネットスラングの定義だって言ってるやつをバカにしてるんじゃないかな

70 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 18:56:03.91 ]
まあ結論は出たみたいだから、もう終わりにしようぜ。



71 名前:54 mailto:sage [2012/02/04(土) 19:32:32.70 ]
>>55-56
レス、ありがとうございます。
返事が遅くなってすみません。

ユーザーフォームに保存用のボタンを貼って、保存しようとしています。
保存を行った時に保存先フォルダーの記憶用変数を用意して、その変数が
空なら初めての保存、空白以外なら保存用ダイアログを表示した時にそのフォルダーが
表示したいという事でした。
変数に取り込めれば、フォームを閉じる際にiniファイル等に保存して次回以降は
フォルダー選択の手順を省けると思いました。

よろしく御願いします。

72 名前:54 mailto:sage [2012/02/04(土) 19:55:05.76 ]
書き忘れました。
保存先記憶用変数が空の場合は、保存先ダイアログ表示時の
フォルダーはExcel任せでも良いです。
よろしくお願いします。

73 名前:デフォルトの名無しさん [2012/02/04(土) 20:05:32.51 ]
iniファイルへの書き込みや読み込みはAPI使うっての知ってますか?
まぁ単純にテキストファイルのオープンで読み込み書き込みでも出来なくはないだろうけど


74 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 20:16:21.93 ]
>>72
で、何がわからないの?

75 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 21:11:43.87 ]
>>71
chdir 前回保存先
名前を付けて保存ダイアログ表示
今回保存先を選択
非表示シートにcurdir(今回保存先)を書きみ保存
名前を付けて保存


76 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 23:05:00.06 ]
複数のブックの一部を読み取っていくマクロを書いているのですが
非表示・バックグラウンドでブックを開くにはどうしたら良いのでしょう?
ググったりしていろいろ試してみたのですが、どうしても一瞬表示されてしまいます。 マクロは
Application.ScreenUpdating = False
Set _ActiveSheet = ActiveSheet
Set book = Workbooks.Open(PATH)
book.Windows(1).Visible = False
Call _ActiveSheet.Activate()
Application.ScreenUpdating = True
というようにしています。

また、ブックのオープンに時間がかかっているため、非同期でブックをオープンしてそれをキューに放り込んで行きたいのですが、
こういったことはどうやってやれば良いのでしょう?

77 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 23:20:48.95 ]
>>71
ini ファイルじゃなくて、ブック自体に覚えさせることもできるよ。

Option Explicit
Const PropertyName As String = "SavedFolder"
Sub Macro1()
 Dim SavedFolderProperty As DocumentProperty
 Set SavedFolderProperty = Nothing
 Dim Index As Integer
 With ActiveWorkbook.CustomDocumentProperties
  For Index = 1 To .Count
   If .Item(Index).Name = PropertyName Then
    Set SavedFolderProperty = .Item(Index): Exit For
   End If
  Next
 End With
 With Application.FileDialog(MsoFileDialogType.msoFileDialogSaveAs)
  .FilterIndex = 2
  If SavedFolderProperty Is Nothing Then
   .InitialFileName = ""
  Else
   .InitialFileName = SavedFolderProperty.Value
  End If
  .Show
  If SavedFolderProperty Is Nothing Then
   ActiveWorkbook.CustomDocumentProperties.Add PropertyName, False, MsoDocProperties.msoPropertyTypeString, .SelectedItems.Item(1)
  Else
   SavedFolderProperty.Value = .SelectedItems.Item(1)
  End If
  .Execute
 End With
End Sub

78 名前:2000 mailto:sage [2012/02/05(日) 02:30:18.27 ]
>>76
> Application.ScreenUpdating = False
> Set _ActiveSheet = ActiveSheet
> Set book = Workbooks.Open(PATH)
> book.Windows(1).Visible = False
> Call _ActiveSheet.Activate()

ActiveWorkbook.Close

> Application.ScreenUpdating = True


79 名前:デフォルトの名無しさん [2012/02/05(日) 17:31:56.30 ]
エクセルの関数について質問です。

B1セルに10が入っていたらA1セルに100と返し、
  〃 11か12、13のいずれかの数字が入っていたらA1セルに200と返し、
  〃 14が入っていたらB1セルに300と返し、
  〃が空欄もしくは、10.11.12.13.14以外の数字が入っていたら100と返す
数式を組みたいのですがIFとORを組み合わせてもうまくいきません。
どなたかご教授頂けますでしょうか。

80 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:38:45.19 ]
それをVBAでやりたいってことかな?



81 名前:79 [2012/02/05(日) 17:43:45.11 ]
>80
いえ、違います。
エクセル上で上記の数式を完成させたいだけです。

82 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:46:29.32 ]
>>81
だったら
Excel総合相談所 100
toro.2ch.net/test/read.cgi/bsoft/1325935411/l50



83 名前:79 [2012/02/05(日) 17:50:34.95 ]
あ、スレ違いでしたね。
ちょっとこっちで質問してみます。

84 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 03:30:45.14 ]
同一コードなのに、コードのキャッシュでもされてるのか、結果不定で「?」なときがあると思いますが、そんな時の対処方法はありますか?

85 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 04:16:29.46 ]
構文エラーを起こす

86 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 05:30:54.13 ]
>>84
プログラムとは…
自分が思った通りに動く物ではない
自分が書いたとおりに動くのである

つまり結果が自分の希望に反して不定になるのは書き方が悪い。はっきり言えば間違ってる
よく見直せ

87 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 06:58:44.08 ]
Excel2003です
セルの内容でDBに更新を行う処理です

Set crs = New ADODB.Recordset
crs.CursorType = adOpenDynamic
crs.LockType = adLockOptimistic
crs.CursorLocation = adUseClient
crs.ActiveConnection = cn
'
sSQL = ""
sSQL = sSQL & "SELECT *"
sSQL = sSQL & " FROM WSEL"
sSQL = sSQL & " ORDER BY WSEL.Chusyutu"
crs.Source = sSQL
crs.Open
'
Do Until crs.EOF
  :
  DBの項目にセット処理
  :
crs.Update     ←エラー発生
crs.MoveNext
Loop
crs.Close

1/2

88 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 06:59:45.09 ]
2/2

DBはMySQLをODBCで使用しています
Updateのところでエラーが発生します
実行時エラー '-2147217864 (80040e38)':
行が見つからなかっため、更新できません。列の値は最後に読み込まれた後で変更された可能性があります。

OpenしてからUpdateまでただ項目をセットしているだけでカーソルを移動させていません
項目のセット処理を削除するとエラーは出ません
ただの ○○=×× という処理でカーソルが移動するとは思えないのですがどんな問題があるのでしょうか?

89 名前:デフォルトの名無しさん [2012/02/06(月) 11:02:10.59 ]
ADOのUpdateコマンドではなくSQLのupdate文を
その例で言えば
crs.Execute updateのsql文
という書き方でいつもExcelからmysqlに対してやってる
そのやり方ではどうなの?

まぁ続けるとスレ違いと騒ぎ出す野郎が多そうだから
mougのDB板で聞いてみたら?

90 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 20:30:01.60 ]
>>89
レスどうもです
>crs.Execute updateのsql文
この方法でやってみます
もし上手くいかなかったらDB板で聞くことにします
ありがとうです



91 名前:84 mailto:sage [2012/02/07(火) 02:38:18.51 ]
>>85
なるほど。ありがとうございます。
>>86
ワロタ

92 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 04:59:35.62 ]
それ主キーがないとかで行を特定できてないだけじゃないのか

93 名前:デフォルトの名無しさん [2012/02/07(火) 12:04:22.02 ]
質問です。
「初項(セル B3 の値)と公差(セル C3 の値)を元にして, セル範囲 B5:G5 に等差数列の値を入力する
マクロ「等差数列」を定義せよ」
という課題があるのですが、何から手を付ければいいのか分かりません。
よろしければご教授お願いします。

94 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 12:13:41.21 ]
公式にぶちこめ

95 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 15:15:08.32 ]
>>93
おっぱい見せて

Option Explicit
Private Sub マクロ等差数列()
  Dim 初項 As Double
  Let 初項 = Application.ThisWorkbook.ActiveSheet.Range("B3").Cells(1, 1).Value
  Dim 公差 As Double
  Let 公差 = Application.ThisWorkbook.ActiveSheet.Range("C3").Cells(1, 1).Value
  Dim 数列1番目 As Double
  Let 数列1番目 = 初項
  Application.ThisWorkbook.ActiveSheet.Range("B5").Cells(1, 1).Value = 数列1番目
  Dim 数列2番目 As Double
  Let 数列2番目 = 数列1番目 + 公差
  Application.ThisWorkbook.ActiveSheet.Range("C5").Cells(1, 1).Value = 数列2番目
  Dim 数列3番目 As Double
  Let 数列3番目 = 数列2番目 + 公差
  Application.ThisWorkbook.ActiveSheet.Range("D5").Cells(1, 1).Value = 数列3番目
  Dim 数列4番目 As Double
  Let 数列4番目 = 数列3番目 + 公差
  Application.ThisWorkbook.ActiveSheet.Range("E5").Cells(1, 1).Value = 数列4番目
  Dim 数列5番目 As Double
  Let 数列5番目 = 数列4番目 + 公差
  Application.ThisWorkbook.ActiveSheet.Range("F5").Cells(1, 1).Value = 数列5番目
  Dim 数列6番目 As Double
  Let 数列6番目 = 数列5番目 + 公差
  Application.ThisWorkbook.ActiveSheet.Range("G5").Cells(1, 1).Value = 数列6番目
End Sub

96 名前:デフォルトの名無しさん [2012/02/07(火) 16:41:05.20 ]
すみません、ワードのVBAについてはどこか質問スレってありませんでしょうか?

97 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 17:30:37.03 ]
>>96
専門スレはないのでここで聞いてみる

Word(ワード)総合相談所 Part21
toro.2ch.net/test/read.cgi/bsoft/1319313721/

98 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 17:46:04.08 ]
ない
場違い承知・まともな回答返ってこない前提でここかパワポVBAスレッドで聞いてアレンジするか
ググって見つかる掲示板利用するしか

99 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 17:48:36.97 ]
(*ノノ)イヤン

100 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 17:51:41.95 ]
>>95
>おっぱい見せて
さろんへ行け。








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

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

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