1 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 01:05:30 ] Excelの「VBA」に関する質問スレです 前スレ pc12.2ch.net/test/read.cgi/tech/1235332603/ ★1 質問をするときはOSとExcelのバージョンを必ず書きましょう ★2 わからなければとりあえず「マクロの記録」をしてみましょう ★3 丸投げのプログラム作成依頼は受け付けていません ★4 VBAを使わない、Excelの使い方に関する質問はスレ違いです Excel総合相談所 82 pc11.2ch.net/test/read.cgi/bsoft/1241825062/
75 名前:71 mailto:sage [2009/05/16(土) 21:09:11 ] >>72-74 ありがとうございます。
76 名前: ◆aAB/3SgCFU mailto:sage [2009/05/17(日) 13:44:16 ] 自分が使っているテキストでは、下のプログラムを実行すると、 シートの行と列全てがアトランダムに塗りつぶされるはずなのですが、 実際にやってみても、全列の1行目しか塗りつぶされません。 どこかおかしいのか、教えていただけませんか? Option Explicit Sub 画面更新() Dim i As Integer Application.ScreenUpdating = False Rows.ColumnWidth = 1.75 For i = 1 To 6000 Cells(i).Interior.ColorIndex = Int(Rnd * 56) + 1 Next i MsgBox "これから更新します。" Application.ScreenUpdating = True MsgBox "更新終わりました。" End Sub
77 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 14:13:56 ] >>76 Office2007で利用可能な桁数が大幅に増えた(16384?)のが理由。 桁数が最大256桁とか決めうちしていると、こういうことになる。
78 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 14:14:38 ] Cells(i). が原因だね。 cells(row,column) で指定しないと。
79 名前: ◆aAB/3SgCFU mailto:sage [2009/05/17(日) 19:32:56 ] >>77-78 どうもありがとう
80 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 07:30:50 ] 質問です VBAで他のアプリケーションを開くまでは色々ググって出来たんですが そのアプリが閉じられたら、再びVBAに処理を戻したいんです。 今はファイル名のリストがフォーム上に有ってその名前で検索したファイルを開くという作業で一太郎やワード等を ShellExecuteで開くというの作ったんですが 開いたファイルが閉じられたら更新日時を調べて変化が有れば書類の板番号を更新したいんですが いつ閉じられたかも解らないし、ファイルを開いて処理が中断し閉じて再開すると言った事は不可能でしょうか?
81 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 09:09:25 ] >>80 それはアプリの終了よりもファイルの更新を調べた方がいいのでは。 VBAで1秒間隔のタイマーをセットして、ファィルのタイムスタンプを1秒おきに調べるみたいな方法なら すぐに思い付くけど。
82 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 12:00:46 ] >>81 わかりました それで行きます
83 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 13:17:19 ] えっ、それでいっちゃうの?
84 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 13:20:12 ] 行くって言ってるだろ
85 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 14:53:02 ] だって 思い付かないんだもん
86 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 16:03:24 ] OpenProcess()してWaitForSingleObject()するのは駄目なのか?
87 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 16:06:00 ] dirname/filea.ext dirname/fileb.ext があったときに、".ext"に関連づけられているsomeapp.exeを起動したとき、 fileb.extもsomeapp.exeで更新している可能性があるので、 プロセスの終了を待ち合わせて、dirname/*を全検索して情報を更新するのが一番。
88 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 17:00:13 ] ファイルを閉じて、アプリは閉じないかもしれない
89 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 17:19:47 ] ROTにファイルがあるかチェックすればよい
90 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 19:17:48 ] line input 命令で chr(&h0) の入ったレコードを読み込むと強制的に chr(&h20)に置き換えられるのでしょうか? もしそうでしたら、何らかの回避方法を教えていただきたいのですが・・・
91 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 20:21:34 ] バイナリで読め
92 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 11:12:20 ] >>86 試して見ましたが ファイルが開き終わるとwaitが終了し次の処理に移ってしまうようで上手くいきませんで filepath="sample.txt" CreateObject("WScript.Shell").Run FilePath, vbNormalFocus, True MsgBox FilePath & "が閉じられました。", vbInformation Or vbSystemModal これで済ませました お騒がせしました
93 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 12:11:15 ] ワークシートのmodと異なり、VBAのmodは小数点下が切り捨てられてしまいます。 小数点下を含む剰余を返すようにしたいのですが、ワークシートのmodは演算子だから application.mod()とは出来ない。 良い方法はありますでしょうか?
94 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 14:33:35 ] 小数点下は元の数と同じな気がする
95 名前:93 mailto:sage [2009/05/19(火) 15:32:48 ] >>94 分母が整数なら・・・。 x mod yの場合、x - Int(x / y) * yで良いのかなぁ。
96 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 22:18:52 ] x - (x \ y) * y だとどうだろう
97 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 22:45:17 ] 顔文字かと思った
98 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 22:52:54 ] >>96 たばこを吸うバルタン星人ですよね???
99 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 15:37:42 ] すいません、WindowsXP SP3、Excel2003での質問なんですが、 VBAを使って罫線ツールバーの「罫線を作成」機能(セルの枠線にそってクリック・ドラッグで罫線を引く) と同じことをするのは可能でしょうか?
100 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 17:04:50 ] >>99 罫線を引きたいセルを選んでVBA実行して罫線が引かれるっていうのならできるんじゃね
101 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 17:29:32 ] test
102 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 21:13:05 ] 以下のようなことをやりたいです。 XP、Excel2003です。 Excelファイルが2つある。1つは用語集ファイルと呼び、もう1つは作業ファイルと呼ぶ。 用語集ファイルには英単語とその対訳がリスト形式で保存されている。 作業ファイルには英文が書かれていて、知らない英単語が出てきたら用語集ファイルを検索して その意味を調べる。 具体的には 1.作業ファイル中の検索したい単語を反転表示させる。 2.右クリックのショートカットメニューから、独自に追加した「単語を検索」をクリックする。 3.用語集ファイルに、1で選択した単語の検索結果が表示される。(Ctrl+Fでの検索と同じ表示結果) ※ただし、作業ファイルにはマクロは記述しない。 作業ファイルにはマクロは記述しないので2が無理かと思うのですが、代替案として どのような方法を取ればいいでしょうか?(右クリックのショートカットメニューでなくてもいいので とにかく作業ファイルにはマクロは記述せずに、3と同じ結果を得たいのです) おおまかな手順でいいので、ヒントをお願いします。
103 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 21:26:28 ] personal.xlsに記述するのもだめ?
104 名前:102 mailto:sage [2009/05/20(水) 21:49:38 ] >>103 OKです。 personal.xlsが何なのか知らなかったので調べたのですが、どうやら自分の作ったマクロを まとめておくエクセルファイルのようですね(初心者ですみません)。 つまり、最終的には作業ファイル・用語集ファイル・personal.xlsという3つのファイルで作業する という認識で正しいですよね?
105 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 22:00:12 ] >>102 その程度のユーザビリティなら、そのままCtrl+Fで良いじゃん。 わざわざマクロを組む必要性がわからん。
106 名前:105 mailto:sage [2009/05/20(水) 22:01:04 ] >>105 あぁ、別ファイルか。 ごめん。
107 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 07:37:30 ] >>95 別に分母が正数じゃなくてもそれでいいんじゃない? むしろ分母が整数の必要があるのは>>96 だな。
108 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 08:20:20 ] 重複に関してちょっと質問します。 = IF(COUNTIF(B:B,B4) >1, "重複","") この関数でE4という条件をB列全てに適応できたらと 思っています。この関数ではB4のセルの内容が 他と重複してるかいないかのチェックだけになります。 B4セル エクセル B5セル ワード このような場合エクセルとワードという単語がB列で 重複してるかいないかのチェックになります。
109 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 09:31:14 ] これはVBAではないですよね?
110 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 11:00:14 ] エクセルだなw
111 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:18:50 ] あるセルにこんなSUMIF関数を入れたいんだけど、 Cells(r + 1, 4).FormulaArray = "=SumIf($O1:$O500,cells(r,3),#K1:$K500)" エラーになってしまうのは、検索条件がおかしい? (rはFOR〜Nextさせています)
112 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:32:10 ] Cells関数なんてあったか?
113 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:43:27 ] >>111 何で文字列に変数名が入ってるんだ。 ” ”で囲まれた中は文字列だから、rは文字のrでしか無い。 てか、SUMIFなんて使わずにVBAで構文書いた方がずっと楽だよ。
114 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:28:23 ] こうか? Cells(r + 1, 4).FormulaArray = "=SUMIF($O1:$O500," & Cells(r, 3) & ",#K1:$K500)"
115 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 01:11:16 ] >>111 そんなのはピボットでやれよ。 #は$の間違いか?
116 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 08:13:03 ] >>113 for文使ってるって言ってるんだからVBA使ってるいるんじゃないのか?
117 名前:デフォルトの名無しさん [2009/05/22(金) 11:29:40 ] >>4 replace ☆VBAはVisual BASIC For Applicationsの略だとされており、Visual BASIC Visual BASIC .NET VBScrptとは文法が異なる言語です。(ただし共通性は 概して高いです。) ☆制限はそれなりにありますが多くのVBA環境からもWindowsの共通ライブラリ を利用することが出来ます。(但しそれぞれのライブラリの個性に応 じた、専門知識は必須ですがそれが公開されている(=入手可能)とは限りま せん) ☆このスレではVBAを用いてExcelがインストールされている Windowsマシンでは、原則としてはプログラム言語の種類によらずに 使用可能なライブラリ「Excel オブジェクト」の公開部分の操作をし て目的の結果を得る(※)手段を考案する状況で発生した疑問、質問に対して 有志が答えるスレッドだと考えられます。Excelに付属のVBAエディター を使用してプログラミングを行っているという状況はまさにこの 状況になりますし、その状況以外で発生したものはスレ違いになる可能性 が濃厚です。 (※)この手段が邪道でExcel道に根本的に反するという意見も貴重 です。Excelは一元的かつ算術的な処理の為のソフトウェアであり、多元的 かつ手続き的な処理には向かないという考えに基づくものです。 本来VBAがもっとも効率的に活躍するのはAccess環境であるという考え方 を取りたいものです。
118 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 11:51:39 ] >>111 そもそもFormulArrayなら範囲に1個の配列数式だからループを回すのはおかしい。 式の入力範囲がD2:D100だったらD2:D100を選択して{=SUMIF(O1:O500,C2:C100,K1:K500)]だが Range("D2:D100").FormulaArray = "SUMIF(O1:O500,C2:C100,K1:K500)" と書けば配列数式が入力される。 配列数式じゃなければFormulaArrayじゃなくてFormulaだ。 どっちにしてもループは回す必要なし。 >>115 が言うようにおそらくピボットテーブルでできることだろうけどな。
119 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 11:52:34 ] Range("D2:D100").FormulaArray = "=SUMIF(O1:O500,C2:C100,K1:K500)" だった。
120 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 12:15:10 ] >>117 回答者側はその物言いで理解できるだろうけど 質問者側はそれじゃ理解できない奴多いだろうな
121 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 13:32:03 ] 世の中は即理解できる世界ばかりで出来ているわけじゃないことを 教えるのは重要
122 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 13:40:44 ] プログラムって、頭の良い人なら3日くらいで何でもできるようになるのだろうか? 自分は4月から勉強し始めたけど、やってもやっても、 分からないことや、知らなかったことが出てきてゴールが見えてこない。
123 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 13:48:57 ] 頭の良い人なら3日くらいで何でもできるようになるのだろうか? 3日くらいで何でもできるようになるのが頭の良い人
124 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 14:18:55 ] 試験勉強じゃないから暗記しなくてもいいし わからなかったら人に聞いてもいいし 本人に作る気があればプログラムなんかいくらでも作れるだろ
125 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 14:31:46 ] 俺は長い事ECMAやってからVBAを始めたんだけど、 ・言語体系を覚えるまで3か月 ・VBAで出来る事、向いてる事かが分かるまで更に3か月 ・調べながら自分で作れるようになるまで更に3か月 って感じで、かなり時間が掛かった記憶がある。 VBから始める人ならそれこそ3日で出来るとかあるだろうけど、 それ以外の言語からだときちいわ。 未だに分からん事の方が多い。 プログラムやったこと無い人だったら、変数って何?配列って何? って事から始まるんだし、もっと時間かかるんでないか?
126 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 14:34:59 ] ECMAって何だ?
127 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 14:36:41 ] まず、何でも出来るようにはならない。 出来るよ!って人でもその時々で調べながらプログラム組んでるものです。 暗記する必要もないし、調べながらでも出来れば問題ない。 大体、使うものって限られてるし、それが出来れば十分なわけです。
128 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 15:05:05 ] >>125 ECMAってJavaScriptだろ? そりゃきちいわ。同じ系統でもVBScriptからだと だいぶ違うと思うがどうかな。 だがVBA自体はかなりしっかりした 言語なんで半年以上かけて勉強したことに ついて損はしてないね。
129 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 17:25:31 ] OS:WindowsXP Excel2007 での質問です。 今までExcel2003で使っていたマクロの冒頭部分が以下のとおりです。 If Dir(OutPath & "\完成", vbDirectory) = "" Then MkDir OutPath & "\完成" ActiveWorkbook.SaveCopyAs FileName:=OutPath & "\Tmp.xls" Workbooks.Open FileName:=OutPath & "\Tmp.xls" Dim TmpWorkBook As String TmpWorkBook = "Tmp.xls" Workbooks(TmpWorkBook).Activate ここで作った一時ワークブックに、別に開いたCSVファイルをシートごとコピーするという命令が続くんですが、 Excel2007になってからCSVを開いた時勝手に巨大なシートサイズになる?のかどうかわかりませんが、 コピーの時点で「コピー先に対してシートサイズが大きすぎてコピーできません」となるようになってしまいました。 そこで上記マクロの"Tmp.xls"をすべて"Tmp.xlsx"にしてみたのですが、 今度はファイル拡張子とファイル内容が一致しませんと言われてOpenできませんでした。 原因と対処がわからないのですが、どのように改善したら良いでしょうか?
130 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 17:37:42 ] 追記:マクロ実行時点でのActiveWorkbookは本マクロが含まれてるファイルです。
131 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 18:15:34 ] すみません、自己解決しました。 大元のファイルをxlsmで保存しなおして、VBAの中もxlsmにすればいいんですね。
132 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 19:17:20 ] >>122 目的があれば、すぐに覚えられる 事務作業の自動化のために 表への入力、印刷設定→印刷の自動化、ファイルを正規化させたり、シートを一度に何個も作る・・ 等の作業をマクロの記録。そして改変。後はifやforを覚えたかな プログラムへのとっかかりとして、マクロの記録はとんでもなく優秀だと思うわ プロシージャやメソッド、その概念すら覚えて無くてもとりあえず動くマクロが作れるってところがね
133 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 19:48:19 ] >>127 確かに暗記しなくても書けるには書けるが、せめて 宣言系、制御系、演算子くらいは最低限暗記しないと、とても実用にはならないよ まあこのへんはまともなコード書けば必ず使う物だから、意識して覚えようとしなくても すぐに暗記しちゃうとは思うが
134 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 20:11:36 ] >>122 やりたいことが明確になればすぐにできるようになると思うよ わからないことが出たら調べてそれでもわからなければここで聞けばみんなが教えてくれるし 参考書読んでてもあまりできるようにはならないかな まず簡単な A1の値をA3にコピーするから A1の値をSHEET1のA3にコピーしてみる さらにA1の値を別BOOKのSHEET1のA3にコピーしてみる と言ったように自分でいろいろ弄って遊ぶような感覚でやっていかないと 覚えが悪いと思う
135 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 21:22:23 ] VBAを使ってツールバー上のコントロールを実行したいんですが、 ドロップダウンリストなどを項目を選択して実行するということは可能でしょうか? 例えば書式設定ツールバーのフォントを選択するリストでMS明朝を選んで実行、というようなことです。 普通のボタンをExecuteで実行するやり方は分かったんですが、リストの場合はどうすれば…
136 名前:デフォルト名無しさん mailto:sage [2009/05/22(金) 22:46:56 ] 学校の課題なんだけど、 ttp://www.hasimoto999.aki.gs/img-box/img/5764.jpg ttp://www.hasimoto999.aki.gs/img-box/img/5765.jpg が、5時間近く考えてもわからない 簡単過ぎる問題かもしれないけど、ご教授頼むorz ちなみに19の1は解けてる。
137 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:50:05 ] > ★3 丸投げのプログラム作成依頼は受け付けていません > ★7 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み > コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 > ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
138 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:55:09 ] >>136 そんなピラミッドを描いて何になる? って解答欄に書いて、相手にたたきつけろ!
139 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:58:13 ] For〜Next、二重ループ とまで書いてくれてるのに分からないとか
140 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:10:41 ] detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1411688549 やるだけ時間の無駄な問題だな
141 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:24:46 ] デバッグのことに関して質問したいです。 代入していない、宣言していない変数へアクセスしたときにエラーを出すにはどうすればいいですか? Option Explicitを指定すると 代入は検知できるんですが 宣言してない変数を読み出しても、Empty値が返ってくるだけで そのまま実行されてしまいます。
142 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:29:09 ] それともう一つ、 また、エラーが発生した箇所を調べることは出来ないのでしょうか? たとえば、オブジェクトをSetを使用しないで代入すると 「実行時エラー'91' オブジェクト変数またはWith(ry」と例外が発生して、ダイアログが出ますが この例外が発生した箇所を調べることは出来ないのでしょうか? 現在は地道にステップインでエラーが発生するまで追っていますが なんだかばからしくてやってられません。 また、例外構文もN88BASICを思い出させる、On Error〜割り込みしか無いのでしょうか? よくある、try〜finally 〜catch(Exception e) というような構文はないんですか?
143 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:30:44 ] >>142 >なんだかばからしくてやってられません それが自分の資質を示しているねw
144 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:34:47 ] >>136 辛口な事言うけど、論理的思考が全く出来てないでしょ。 ただ答えだけ貰ったって何も役に立たんのでは? 単位もらえりゃ良いって事なのかもしれんけどさ。 for i = 1 to 9
145 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:36:34 ] >>136 途中送信しちまった。 for i = 1 to 9 for j = 1 to 9 cells(i,j).value = i*j next next つーか、こんな問題も解けない生徒がいるのに良く授業だなんて言えるわな。
146 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:38:30 ] >>142 エラー吐いた部分で黄色く反転して中断されないか?
147 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:43:47 ] これでも別に不正解ではないな。プログラムサイズに制限もないみたいだし。 二重ループは最後に空ループでも置いとけばいい。 Range("A2")=1 Range("A3")=2 Range("A4")=3 Range("A5")=4 : 以下略 ちなみに、文句言ってるやつは全科目100点だったのかな? 宿題を誰かに写させて貰ったこともないのかな? 学校なんてこんなもんだよ。まじめに考えすぎ。
148 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:45:22 ] >>145 そうやって結局教えちゃうから育たないんでしょ
149 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:46:10 ] たかが5時間でギブするのはどうだよ
150 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:46:29 ] >>147 論点のすり替え ここは宿題教えるスレじゃない
151 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:46:55 ] 単位なんてもらったもん勝ち。入試だって就職だって、まぐれでも入ったもん勝ち。 世の中、要領と運のいいやつが一番トクをする。
152 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:47:59 ] 九九はどうでも良いんだけど、ピラミッドの方がなぁ。 指定された整数が129以上だと、その時点でオーバーフローだな。2003までは。 do untilで指定の数までインクリメントして、 do untilで1になるまでデクリメントして、 積み重ねる部分を関数化するのが楽だと思ってしまた。
153 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:48:42 ] >>149 それ以前に、こんな問題、読んで1分で分からなきゃモノにはならないよ。
154 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:51:57 ] こんなレベルの低い、下らないもんで良いのか。 やっぱ学校なんて気楽なもんだね。 この程度の問題が100点でした!VBA出来ます!! って入ってくる新人がいるって事の方が怖い。
155 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:12:01 ] うちの学校は一般教養にコンピューターの授業が週一であって、 簡単なプログラミングの問題が出た。 少なくとも生徒の99.9%はプログラマーなんて目指してなかったし 宿題なんてほぼ全員が誰かのノートを丸写ししてた。
156 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:13:09 ] ふーん
157 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:22:59 ] うちの商学部でもCとかJavaとかの授業があった。教え合ったりこそはしたけど、コードとチャートは各自で書いてたよ。 SEにはならなかったけど、今の職場でVBAが扱えることで重宝してもらえてる。てかSEにならんでよかった、なったら埋没してたろうから。
158 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:27:04 ] >>157 自分より優秀な奴が集まる集団で働くよりも、自分が一番の集団で働く方が、 大事に扱われるし、自尊心も満たされるしなw 給料3万円しか違わないなら、俺は後者を選ぶ。
159 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:33:36 ] うちのひいじいちゃんが言ってた 「鶏口となるも牛後となる勿れ」ってね
160 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:35:14 ] 俺は三番手位でいいや。 出る杭は打たれる、という諺もあるしな。
161 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:40:20 ] 俺はわかっててもできないフリをしてる。 なんか面倒な作業を押しつけられそうだし。 今の年収で満足してるし、課長とか部長にもなりたくないし。 最低限の生活が出来ればいいや。
162 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:45:58 ] 現実で使えない問題なんてさっさとネットで聞くのが吉 現実的にありそうな問題は分かるまで自分で考えるのが理想だが、そんなことで単位落としたりしてはそれはそれで問題だろう 実際現場ではネット使い放題、上司に質問し放題なんだし かと言ってそれに頼りすぎて成長しないのも困るんだけどね でもそれが仕事がすすまないのも困るんだけどね
163 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 03:26:21 ] >>143 構文チェック時・コンパイル時に分かることなのに 実行しないと分からない。しかも100行を超えるコードをウォッチ式で変数を監視しつつ、ステップ実行するというのは 明らかに効率が悪く、方法を見直す必要があるため、質問しました。 >>146 されません。 例外が発生すると、OKとHELPしか選択肢のないダイアログが出るだけです。 もちろん、ブレークポイントを設定したり、ステップ実行したり、Escキーで停止したときには 実行中の行が黄色く表示されますが。 書き忘れていましたが、 Office 2007 EEで保存形式は2007+マクロ(xlsm)です。
164 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 04:16:07 ] >>163 うそつき ttp://windyakin.if.land.to/src/up38_1232.png
165 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 13:42:35 ] >>164 私の環境では windyakin.if.land.to/src/up38_1233.png こうなりますよ。 やはり何かデバッグオプションが足りないのかもしれません。 プロジェクトのプロパティに「条件付きコンパイル引数」という項目があるんですが そこの所が空欄なのが問題なのかもしれません が、オフラインヘルプを見ても windyakin.if.land.to/src/up38_1234.png というようになんか壊れてますし・・・ オンラインヘルプじゃないのでそのまま凸することも出来ません MSDNの.netリファレンスが不親切だと思ったことはないですが このVBEに付属するリファレンスは何かと不親切ですね。列挙子が何を意味するのかも省略されてますし、ひどいものです。 翻訳作業が間に合っていないならせめて原文を載せてほしいところです。
166 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 13:52:14 ] 2007で確認したけど、164と同じ。 もしなんだったら、MSDNの原文読めばいいんじゃない?
167 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 15:21:26 ] >>165 条件付きコンパイル引数のとこはうちでも空欄 ヘルプも同じ所が同じようにおかしい
168 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 15:25:33 ] 画像貼るの忘れた ttp://windyakin.if.land.to/src/up38_1235.png
169 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 15:35:28 ] セル内の文字列を選択した状態(反転表示した状態)のまま、マクロを実行することはできないのでしょうか? ツール→マクロをみてもグレーアウトされた状態で実行できません。
170 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:22:20 ] >>136 今更だが今初めて質問みたのでピラミッドのヒントだけ 1,3,5,7,9と増えていくから必要な”■"は段数*2-1必要。 ループは後ろから回せばよい。 あとはCellsとかResizeとか好みでOffsetとか。
171 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:26:01 ] ループは頭からでも同じか。
172 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 19:06:30 ] 一寸だけキモく書くならこんな感じか? For i=1 To height For j=1 To height*2-1 Cells(i,j)=IIf(i>Abs(height-j),"■","") Next Next
173 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:33:33 ] >>172 ふつうに数学的に考えるなら y = n - | x - n/2 | で良いよね nは底辺の長さ n = h * 2 グラフに疎い人だと、ピラミットは垂直二等辺三角形が2つくっついたものだととらえて x1(i) = h - i x2(i) = h + i y2(i) = y1(i) = h - i (0 <= i <= h) とするかもしれない。 ピラミットに必要な石の数は孔子にでも聞け。区間[0,n-1]までで上記の式を積分すれば分かる。
174 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:38:21 ] 垂直二等辺三角形
175 名前:173 mailto:sage [2009/05/23(土) 21:05:14 ] >>174 どんな三角形だw と思ったら自分で書いてたorz 正しくは"直角"二等辺三角形です