ExcelのVBAに関する質問スレです
★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。
★2 ExcelのVBA以外の部分に関する質問はNGです。
但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。
★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
VBAとは、『Visual Basic for Applications』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。
★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
前スレ:Excel VBA 質問スレ Part28
http://toro.2ch.net/test/read.cgi/tech/1359607536/ 関連スレ:VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
4 :
デフォルトの名無しさん :2013/03/31(日) 11:24:01.80
まぁ別に
>>1 がこの世の何にも優先される絶対的真理って訳でもないし、テンプレ盾に訳分からんこと言ってきたって無視すれば良いだけの話。
5 :
デフォルトの名無しさん :2013/03/31(日) 12:52:33.92
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
>>1 は前スレで★5を消すか皆で議論している最中に消されるのが嫌で
焦ってこのスレを立てることにより、テンプレを守る必要がない大義名分を与えてしまった。馬鹿な奴だ。
どんだけ悔しがってるんだw とりあえず涙拭けよ
あーあ、アスペのせいで このスレもなんでもありになっちゃったね。
これまでも何でもありだったし、これからも何でもありでいいじゃん。
じゃそういうことで
もう一個のVBAスレとは何だったのか
クレクレウェルカム荒らしウェルカム桃白白可愛い
話題無いから燃料投下 VBAとVB6のアーキテクチャってどっかで共有されてるの? 言語仕様そっくりだとは思いつつそのへん意識した事無かった
これから何かあるたびに
>>1 のせいで、とか
あの時のアスペのせいでって
言われるんだろうな。自業自得だけど。
調子にのるな馬鹿
余程悔しかったんだろうな
なんとか
>>1 を悪者にしようと、必死で印象操作してる
露骨&粗忽すぎて、
>>1 叩いてる奴の方が自分の陰湿さを晒してるだけなのが笑えるがw
19 :
デフォルトの名無しさん :2013/03/31(日) 17:23:33.49
この人、荒して皆に迷惑掛けてるって自覚あるのかな
ある列の値の入った最下行を取得するのは、どうするのが一番確実でしょうか? End(xlUp).Rowだと書式だけ残った使用済みのセルで引っ掛かってしまいます End(xlUp).Rowから一つずつ上のセルの確認するしかないのでしょうか
以上、ここまでテンプレ
>>21 この間の人?
End(xlUp)って書式引っかかったっけか。
もう一度引っかかったとこらへんの範囲を選択して
Deleteキーで消してみても駄目?
>>22 旬の食材を薄力粉の液体につけて
180度くらいに熱したゴマ油にいれて熱を通してから天つゆにつけて食う
>>23 この前の人がどなたか存じ上げません、別人です
すみません、書式だけ残った場合では引っ掛かりませんでした
=if(iserror(hogehoge),''',a1)みたいな数式を値で貼付けていた場合に
見た目が空のセルでもEnd(xlUp).Rowで引っ掛かってしまう様です
26 :
デフォルトの名無しさん :2013/03/31(日) 21:41:48.30
>>978 ああ、ExcelVBAではなくて、AccessVBAか。それならその使い方にむいてるかもね。
Excelから、AccessDBに連携させてんじゃなくて、AccessVBAで単独構築ってことだよね。
>>996 保守が誰もできないVBA資産を残すリスクが高いって話だよ。
金の計算がからむのは、さすがに怖くて残せない。利率がかわっても、修正することすら
気づかず使いつづけそうだし。コードに利率は記載せず、誰にでも修正できるようシートの
利率TBLを参照する形にしたって、気づかない人は気づかない。
後任はまだよくても、後任の後任のPCスキルがどの程度なのか不明なわけだし。
ちなみに今月、自分が、同僚に真顔で聞かれたこと。
「フォルダって、どうやって新しく作るの?」
・・・VBA資産を残すのは、リスキーすぎる職場だろう。
>>25 有効な値のあるセルを見つけたいってことかな。
Columns(1).Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
>>28 Dim targetColumn as Integer
targetColumn = 1
Dim resultRange as Range
set resultRange = Columns(targetColumn).Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
Dim resultRow as Long
If resultRange Is Nothing Then
resultRow = 1
Else
resultRow = resultRange.Row
End If
出来ました、ありがとうございます
ワイルドカードを逆順で検索、思いつきませんでした
40 :
デフォルトの名無しさん :2013/04/01(月) 00:09:36.90
29に優しくしてやれ。 このスレ、私見だが、女も多い気がするし。29がそうだとはいわないが。 vba = 事務職が主に使う言語 =事務職の大半は女 の構図から連想してみた。
カワイイなら俺が全部コード書いてやる
濡れた
Dimは先頭にまとめるべき論争の再来になるから嫌だ
汚いってそういう事なの?
結果を変数に入れてるのがなあ こういうのは関数にするだろ普通は
いや、これ自体が関数の中身で、 その変数が最後に戻り値設定されていれば別段問題ない。
変数や定数の値を別のブックから参照する方法がありましたら教えてください。
参照設定
ものすごく初心者な質問ですみません… Sheet1にあるマクロ実行ボタンを押して、その結果をSheet2に表示する方法を教えてください。 どうしても、Sheet1結果が出るか、新しいシートに出るかしかできないのです。 よろしくお願いします。
Sheet2.Cells(1,1) = "けっか"
Sheets("Sheet2").Cells(1,1) = "けっか"
>>51-52 できましたー!
このスピードで答えていただき本当に助かりました!
ありがとうございました!
このスピードで ワロタ
55 :
デフォルトの名無しさん :2013/04/03(水) 13:19:39.78
すみません、自分で考えたのですが解決できずお力を貸して下さい。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("D4:D10")) Is Nothing Then Exit Sub Select Case Target.Value Case Is = "" Target = "あ" Case Is = "あ" Target = "い" Case Is = "い" Target = "" End Select If Intersect(Target, Range("B4:B10,C4:C10")) Is Nothing Then Exit Sub frmCal.Show End Sub 今の状態では、B4:B10,C4:C10のセルを選んでもカレンダーがでません。助けてください orz
>>55 「あ」とか「い」が何やってるのかわからないけど、これじゃ駄目なの?
if target.column >= 2 and target.column <= 4 and target.row >= 4 and target.row <= 10 then
frmcal.show
end if
>>57 > If Intersect(Target, Range("B4:B10,C4:C10")) Is Nothing Then Exit Sub
> frmCal.Show
>
> End Sub
の何がまずかったのかな?
聞いてる本人に聞くなよw
>>58 「あ」とか「い」の部分がなくても
> If Intersect(Target, Range("D4:D10")) Is Nothing Then Exit Sub
があるから絶対にfrmCal.Showは実行されない。
それがまずい。
何がまずくてもいいじゃん あきらかにまずいだろ 前スレの何が勉強になったの?とか言ってた奴か?
未だに悔しがってるとか、どんだけw
もういいだろ
>>61 俺も解らなかったから聞いただけなんだが。
解決したのならどこがまずかったのか理解できたと思うんだけど。
>>64 なあ、それ本当に知りたいことなのか?
何かお前にプラスになるのか?
できました!ありがとう。
67 :
58 :2013/04/03(水) 19:00:44.35
>>60 絶対にfrmCal.Showが実行されないという理由がわかりません。
>>67 D列以外をダブルクリックしたら、最初のIfだけで終わっちゃうじゃん
ていうか、うちの環境だとちゃんと判定してくれるけど
>>68 ということは、
>>56 のレスをふまえると、最初のIfか最後のIfのRangeプロパティの
範囲のどちらかが間違っていたということですね。
ありがとうございました。
マジで言ってんのか? もうVBA以前の問題だわ。
なんで?
この中で男以外は帰ってください。 残ったなかで女以外は帰ってください。 誰も残ってないんですなぜだかわかりません。 って言ってるようなもんだぞ。
性別があやふやな人もいるじゃないですか
このスレで女以外は帰って下さい。 そして可愛い子以外は帰って下さい。
おまえって欲望に忠実だな
デ・ルモンテの法則
VBAで画面キャプチャ後bmpとかpngで保存するとか可能ですか?
可能だよ VB6でのやり方がそのまま使えるのでお好きにどうぞ
>>79 返信ありがとうございます。
ちょいとサンプルコード探してみたいと思います。
>>79 探したのですがコードが見当たりません。
何かわかりやすいソースコード御持ちじゃないですか?
持ってますお
84 :
83 :2013/04/04(木) 15:50:07.05
Option Explicit 'ファイル保存ダイアログ Private Function GetSaveFileName() As String Dim sfile As String sfile = Application.GetSaveAsFilename(fileFilter:="JPGファイル (*.jpg), *.jpg") If sfile = "False" Then GetSaveFileName = "" Else GetSaveFileName = sfile End If End Function Private Sub CommandButton1_Click() Dim rg As Range Dim cht As Chart Dim fina As String
85 :
83 :2013/04/04(木) 15:50:37.62
'保存ファイル名を取得 fina = GetSaveFileName If fina <> "" Then '選択範囲を取得 Set rg = Selection '選択した範囲を画像形式でコピー rg.CopyPicture appearance:=xlScreen, Format:=xlPicture '画像貼り付け用の埋め込みグラフを作成 Set cht = ActiveSheet.ChartObjects.Add(0, 0, rg.Width, rg.Height).Chart '埋め込みグラフに貼り付ける cht.Paste 'JPEG形式で保存 cht.Export Filename:=fina, filtername:="JPG" '埋め込みグラフを削除 cht.Parent.Delete End If End Sub
86 :
83 :2013/04/04(木) 15:51:34.76
これを保存ダイアログなしで自動でtestで保存。指定したセル範囲をキャプチャに改造して頂けませんか?
甘えすぎ
88 :
83 :2013/04/04(木) 16:19:20.62
>>87 じゃあ範囲は自分で、できたから
保存ダイアログなしで自動でtestで保存。教えてよ
89 :
デフォルトの名無しさん :2013/04/04(木) 16:38:58.05
http://blog-imgs-46-origin.fc2.com/c/h/a/chaigon/CapWnd.txt ※拡張子が txt となっていますが、実体はZIPファイルです。ダウンロード後、拡張子を zip に書き換えて解凍してください。
※CapWnd.basファイルをVBAProjectから「ファイルをインポート」すればOK!
使用例1 : 画面全体の画像をファイルに保存する
Public Sub SavePictureOfScreen()
Dim pic As IPictureDisp
Set pic = CaptureScreen()
Call SavePicture(pic, "C:\screen.bmp")
End Sub
使用例2 : アクティブウィンドウの画像をファイルに保存する
※保存した画像の一部がおかしい不具合あり。原因は調査中。
Public Sub SavePictureOfActiveWindow()
Dim pic As IPictureDisp
Set pic = CaptureActiveWindow()
Call SavePicture(pic, "C:\activewindow.bmp")
End Sub
コード作成依頼に対応するなよ。
>>91 誘導ありがと。修正もここでしてもらると思ってたわ。
失礼しました
私オカマなんたけど
事務のパソコンが壊れたため1台新しくwin8を買ったため excelを2003から2010に変えました それでもう一台別のXPパソコンのほうも2010にしたんだけど win8の2010でシート上のactivXのテキストボックスを作って保存したものを XPの2010で開くとなんとテキストボックスのサイズもフォントサイズも一回りでかくなってるという 気持ち悪い現象が起きてます。 なんかバグっぽいけど治す方法とかありましたら教えてください。
>>1 ★5に反発してた子が、
>>1 ★5を推す奴はキチガイという印象操作のために
>>1 ★5に該当しない案件にまで
>>1 ★5を指摘ししてネガキャンしてるのか
そこまで見えてくると、逆に
>>1 ★5に反発してる子の方が
どんだけキチガイで姑息で陰湿で浅学浅慮なのか、ありありと解ってしまうな
必死すぎ
だよな
なんでそこまで必死にネガキャンしてまで
>>1 ★5を叩こうとするんだろう?
白ももが必要以上に手厚いのがウザいんじゃね
つーか丸投げグレグレしたい奴が、ここを自分に都合の良い場に 改変したくて騒いでるだけだろ
★5そのものじゃなく、高圧的な態度
態度って、誰の?
どっちでもいいよ むしろ7追加してこんなことで荒す奴は 来んなってしといた方がいい
最初どう言う事か分からなかったけど
>>97 はあの基地外が書き込んだものではないと言う事なのか?
だから
>>100 以降あの基地外らしき人物の自演レスが暫く続いているのか。
どっちも迷惑だから早く氏んでね。
はいはい、印象操作乙 でも他人に自演のレッテル貼る前に 自分の自演がバレないようにもう少し演技したら( ̄ー ̄)ニヤリッ
失礼、間違えました
×結局
>>1 のせいでまた荒れるのか
○結局
>>1 に粘着する奴のせいでまた荒れるのか
印象操作wwww
ActiveSheet.Range("A1:A2").Value これでエラーになるの何でですかね
>>110 の印象操作に、当てつけのように印象操作返しか
やるなw
>>113 それ自体はエラーにならないはずだが
返る値が配列なので、代入先が配列変数じゃないと型不一致でエラーになる
印象操作返しwwwwwww
はやく春休み終わらないかなぁ
>>119 残念ながら、今粘着してる奴はおっさんだと思うよ。
飽きるまで待つしか無いね。
本人が言うならそうなんだろう
ド・ンキホーテの法則
VBA初心者ですが VBAの連続作動時間には制限はあるのでしょうか?その気になれば1年でも2年でもPCが壊れない限り永久に動き続ける物なのでしょうか?
>>123 理論上は無制限だけど、実際はバグや故障があるから運次第
どれだけ動き続けるかは予測不可能
Dim a As Variant For s = 2 To 20 a = Cells(s, 12).value Select Case a Case Is = 0 i = i + 1 Case 1 To 2 r1 = r1 + 1 Case 3 To 4 r3 = r3 + 1 Case Is >= 5 r5 = r5 + 1 End Select Next これでやるとCells(s, 12)が空白の時にも Case Is = 0と判定されてしまいます。 空白を0と判定させないためにはどう修正したらいいでしょうか?
ISって何かしら セル = "" とかで分岐してみてはどうでしょうか?
>>125 セルの値をVariant型で取得してるわけだから、Select Caseステートメントで数値にこだわる必要はない。
>>125 数字が入ってるかどうか調べるにはIsNumericという関数を使う
ていうか、ここでIsを使う意味がわからない
Case 0
でいいじゃん
>>126 ヘルプぐらい嫁
>>125 空 0 =""
○ ○ ○ := Empty
○ ○ × := 0
○ × ○ := ""
○ × × :IsEmpty
○ × ○ :Len() = 0
>>125 これでいいんじゃね?
Select Case a
Case ""
' 空白の場合
Case 0
i = i + 1
Case 1 To 2
r1 = r1 + 1
Case 3 To 4
r3 = r3 + 1
Case Is >= 5
r5 = r5 + 1
End Select
>>128 IsNumericは0でも空白セルでもTrueだよ
0か空白かの判別には使えない
>>128 Case 0でも空白(Empty)の場合は0と判断されて仕舞いました。
>>127 空白を除外したい場合はどうしたらよいのでしょうか?
>>130 ありがとうございました
判定してくれました
a = Cells(s, 12).Text
表示形式に左右されるTextプロパティは条件判定に使わない方が吉 やるならValueをCStrで変換
>>132 それをコードに起こすだけなんだけどできない理由は?
もう質問者は別回答者より事足りてるのに、掘り返す奴。 ちいせぇ。 しかもできない理由は?(キリッ とかキモイ。 理由なんかどうでも良いんだよ。ましてやお前になんていう必要も無い。 黙ってやり取りを必要としない一発回答上げりゃ良いんだよ低脳。
142 :
138 :2013/04/08(月) 03:15:27.79
>>139 >>130 の空白の場合と0の場合を入れ替えると結局出来てないことになるけど問題ないのか?
>>142 >130でできたって何回も言ってんだろ。
>空白の場合と0の場合を入れ替えると
わざわざ入れ替えるなよ低脳。
>>144 流れ見て何が正か考えて物言えよ。クズ。
答え出てんだよ。低脳が。
>>138-145 どっちもアレだけど、正直スレ違いなので遠慮いただきたい
ちなみに
>>143 ,146でも触れられているけれど、なぜ入れ替えるの?
掘り起こす割りに、掘り起こされる事に弱い138。
>>124 ありがとうございました。
大量処理をさせてますがしょっちゅ止まります
>>146 ,147
評価順番が変われば結果が変わる。
あとは想像できるでしょ。
評価の順番を変える理由は?
またこの手の荒らしか。 いい加減にしてくれないか。
あるセルに名前を打ち込むと自動的に指定したセルに振り分けられて入力させるとかってできるかな?
できるけど、何か?
必死すぎ
なんか最近いつもこんな流れになっちゃうね
・答えではなく理屈を知って欲しい ・自分の回答を採用して欲しい ・お礼を言ってほしい こんな回答者が居ると、高確率で荒なる
>>1 のルールを無視すると荒れるということだと思うが。
要は
>>163 の様に見せかけたい
>>1 がずっと人の事を低脳だとか何とか言って
暴れまわってるんだな。必死過ぎるだろw
> ・答えではなく理屈を知って欲しい それは正論じゃね? ・自分の回答を採用して欲しい 採用しないとゴネるってならまだしも、 わざわざ回答しておいて採用して欲しくないってあり得ないんじゃね? > ・お礼を言ってほしい 回答する側の要望ではなく、回答貰う側の礼儀としては常識じゃね? むしろ、これらの当たり前のことに反発する奴の存在が 荒れる原因を作ってるのだと思うけど
そんなことでまともな人なら 人の事を低脳呼ばわりしないわな
>>167 そういう価値観を押し付けるから荒れるって、いい加減気付こうな
価値観を押し付けるなっていう価値観を押し付けるなっていう価値観を押し付けるなっていう価値観をおしつけるな
>>166 ってかさ
>>1 を叩く奴、或いは
>>1 に則ったレスを叩く奴が低脳だとか何とか言って暴れてるように見える。
>>171 暴れている様に見せかけて、実は自分が叩かれたいドMなんだろ。
>>171 残念。俺は
>>1 を叩くけど、仕事があるから
>>1 の様に真昼間から書き込む事は出来ない。
そしてここ暫くの荒しは昼夜を問わず行われている。
178 :
デフォルトの名無しさん :2013/04/08(月) 21:30:38.89
俺はこのスレが荒れたって別にかまわないからあえて言うけど、 荒れるのが嫌な連中はまず自分がスルーする事を覚えるべきだと思う。
荒れるのやだったら2chに向いてないだけ。
まあでも荒れないに越したことないし。 ほんと困ったもんだ。
・答えではなく理屈を知って欲しい ・自分の回答を採用して欲しい ・お礼を言ってほしい ・反論されると腹が立つ ・論破しないと気がすまない 3つ以上当てはまる奴は、色々な所でトラブルを起こしやすい気質。 現実だと相手にもされない。
お前らがグズグズやってるから事務のかわいこちゃん達が来れないじゃないか
仕方ないな、俺がかわいこちゃんやってやるよ
・いつも荒れてないと物足りない ・とりあえずどんな質問にもケチを付ける ・とりあえずどんな回答にもケチを付ける
・昼間から書き込める身分。
・触ると、
>>171 に対する
>>174 のように合いの手が入る。
これも追加しといて。
見えない敵に必死すぎだろw
そうか?大体みんな
>>1 がどんな奴か見えてるみたいだぞ?
むしろ
>>1 が滑稽なシャドーボクシングしている様に見える。
むしろ
>>1 に過剰に反発して執拗に粘着してる1人が
どんな奴なのか、皆見えてきてるんじゃないか?
って言うと、本人から俺が
>>1 という根拠無きレッテル貼りを食らいそうだがなw
>>185 負けず嫌いで単純だからすぐ食いつく
これも追加しといて。
・答えではなく理屈を知って欲しい
・自分の回答を採用して欲しい
・お礼を言ってほしい
・反論されると腹が立つ
・論破しないと気がすまない
・負けず嫌いで単純だからすぐ食いつく
・
>>1 3つ以上当てはまる奴は、色々な所でトラブルを起こしやすい気質。
現実だと相手にもされない。
・すぐに箇条書きにしたがる
スレの住民が手を取り合い同調できる、そんなマクロありますか?
質問です。 os win7 Excel2013 時間の計算で、 0~<45分→30分 41~<1時間15分→1時間 71~1時間45分→1時間30分 ・ ・ ・ という計算をするために関数として、 =IF(ISERROR(IF(A1<"0:45"*1,"0:30",IF(F10<"1:15"*1,"1:00",IF(F10<"1:45"*1,"1:30",........ という感じで計算しています。 ただ、これだと入れ子制限で現行バーション前のExcelでは対応できないため この条件をVBAとして簡略する方法がありましたらお願いします。
41~45分は「30分」なの?「1時間」なの?_ 「~<」とか変な記号使わないで 「0分~45分未満」とか「45≦n<75分」とか正しく書いてよ つーかVBAどころか、FLOOR関数使ったらIF入れ子にする必要すら無いんじゃね? 条件が曖昧な上に数式はスレ違いだから具体的な式は伏せるけど
>>199 「この条件をVBAとして簡略する方法」って何を期待してるのかな?
VBAのコードを書け、ということなら申し訳ないが別スレで聞いてくれ。
=IF(ISERROR(IF(A1<"0:45"*1,"0:30",IF(F10<"1:15"*1,"1:00",IF(F10<"1:45"*1,"1:30",........ これだけ見たら「41~」とか「71~」なんて条件が存在しないんだが・・・・死なねえかな
>>204 modして15、45で条件分けるだけだろうが
クレクレ擁護すんなカス
なんでいきなり204は悔しがってるんだ?
くれくれは怖いお(;_;) クレーマー怖いおwwww
>>204 お前が頑張れば頑張るほどスレが汚れるということがわからないようだぬw
夜なら許されんの? 昼夜関係なくね?
>>199 VBAなんか使わなくてもMROUND関数で30分単位に変換できる
=IF(A1<"0:15"*1,"0:30"*1,MROUND(A1,"0:30"))
この場合0:45~1:14までが1:00になる
0:46~1:15までを1:00にしたい場合は0:01を足してから計算する
Excel2003以前で使う時は分析ツールを有効にする
>>199 Function 時刻丸め(n)
x = Round(n * 48) / 48
If x = 0 Then x = TimeValue("0:30")
時刻丸め = x
End Function
これは凄いな。 誰かさんがたった1レス成りすましで書き込む事によって、 クレクレ厨ウザいと言う印象を皆に与えてしまった。 でも流れが不自然だから何となく分かるね。
自分がやってることは、他者もやってるのだろうと疑ってしまうのですね、わかります
燃料投下!
質問の仕方が悪くてというか間違えててすみません。
0:00~0:44 0:30
0:45~1:14 1:00
1:15~1:44 1:30
でしたが、関数だと
>>213 さんがどんぴしゃでした。
もともとAccessで使う予定で、フィールドに関数入れると
フォームからテーブルに反映されないためVBAにするしか思いつかず、
テンプレ★2のみを読んで質問してしまいました。
なのでスレ違いも甚だしく、ご迷惑おかけしました。
なんだかんだでアドバイスしてくれた方々、ありがとうございました。
だそうだ。 結局ボロが出てばれて恥の上塗りするくらいなら 最初から荒らさない方が良かったとは思わないか?
VBAエキスパートって、ここの人は持ってるの?
もちろん持ってない あんなもん必要ないだろ 求人の条件でも見たことないし 実際VBAばっか使う仕事なんて皆無だし
>>220 なんでそう言う方向にしようと必死なの?
明らかに自演とかじゃないのに
>>220 最初から荒れてなかったけど?
質問の内容がわからなかったら聞くのが普通でしょ。
このやり取りを荒らしとみなすのなら、どんだけ被害妄想なんだ?
>>225 その妄想癖のひどさからいって、むしろお前が荒らしてる本人だってバレバレなんだが。
____ / \〟 i──────┐ ヽ | ⌒ヽ ⌒ヽ\ | | | >|・ |─-|_ / j ーc ─ ′ ヽ もうそういう話はお腹いっぱいだからサァ ⊂____ /! _ノ 丸々諸々白桃桃が諸悪の根源ってことにしてサァ _(\ \ \ __/ / 僕たちは仲良く楽しくやっていくのが利口ジャン (─ ヽ、 ` ─_──イ- 、 ヽ二_ノ \/|/\ / \ \
_ ∩ ( ゚∀゚)彡 乙白 !乙白! ⊂彡
教えてください。 eval関数でテキストボックス内を四則演算、カッコ計算とかしていたのですが 64bit版対応で動かなくなりました。
そうですか。 報告、確かに伺いました。
>>230 何を教えてほしいのかな?
Excelのバージョン、OSのバージョンもわからず。
少なくてもExcel 2002 SP3ではeval関数はサポートされてないようだけど。
単に事実しか書かれてないから、何をどのようにしたいのかわからない。
すみません、聞きたかったのは明日の天気です!
地球上の明日の天気は 晴れの地方と、曇りの地方と、雨の地方と、雪の地方と それぞれが混在した天気の地方があります
ありがとうございました。
どういたしまして
いやぁそんな
照れるなぁ(^O^)
一生感謝しません
バージョン毎の違いまとめある?
>>232 すみません。
以下は32ビット版のVBAでは動くのですが
64ビット版のVBAではScriptControlがサポートされてないようなのです。
どう対応すればいいのでしょうか?
Public Sub Sample()
MsgBox Myfunc("100/2*3+3")
End Sub
Public Function Myfunc(str As String) As Variant
Dim sc As Object
Set sc = CreateObject("Scriptcontrol")
sc.Language = "VBScript"
Myfunc = sc.eval(str)
Set sc = Nothing
End Function
>>242 Myfunc()への実引数は、実際はどんなのがあるの?
>>243 テキストボックスやコンボボックスに入力された値です。
IsNumericでエラーになり、さらにMyfuncでエラーにならなかった
場合のみ、四則演算の計算をしようと考えています。
245 :
244 :2013/04/12(金) 18:39:38.84
IsNumericでエラー 訂正↓ IsNumericでfalse
246 :
232 :2013/04/12(金) 19:06:21.71
>>242 すまん。64bitのOfficeの環境がないんで確認はできないけど・・・。
普通にEvaluateステートメントじゃだめなのかな?
Public Sub Sample()
MsgBox Evaluate("100/2*3+3")
End Sub
247 :
232 :2013/04/12(金) 19:17:05.86
>>242 重ね重ねすまん。
>>244 見落としてた。
>>244 の条件を踏まえれば、ScriptControlのオブジェクトを生成せずに
sc.eval()のところをEvaluateステートメントに置き換えて、エラートラップをかければ
できそうな気がする。
確認できる環境がないからいまいち自信がない。
>>247 Evaluateがあったのですね。
解決しそうです。
どうもありがとうございます。
仮にScriptControlでやるにせよ、「64ビット ScriptControl」でググったら一発でヒットしないか!?
>>249 ヒットしたページを見ても「64bitでは使えません」って書いてあるだけ
つまり解決しない
>>250 いやいや、HTMLDocument使った代用コード出てるからそれ使えばいいだけだろう?
>>251 >>250 じゃないけど、個人的にはバージョンが変わると使えない可能性があるオブジェクトを使うより
VBAにやりたい機能があるのならそれを使ったほうがいいかなと。
あと、ググった感じではHTMLDocumentにevalメソッドが無さそう。
249 :デフォルトの名無しさん:2013/04/12(金) 22:20:18.59
仮にScriptControlでやるにせよ、「64ビット ScriptControl」でググったら一発でヒットしないか!?
251 :デフォルトの名無しさん:2013/04/12(金) 23:46:15.94
>>250 いやいや、HTMLDocument使った代用コード出てるからそれ使えばいいだけだろう?
適当ぶっこいたことの謝罪マダー?
>>252 parentWindow(HTMLWindow)のexecScript経由での呼び出しだからevalも普通にいけるはず。
ScriptControlが使えないのは64ビット向けのmsscript.ocxが出ていないことが原因だからバージョンというよりはアーキテクチャの問題かな?
で、今回の質問はたしかにEvaluateで十分なんだけどencodeURIComponentとかdecodeURIComponent呼び出すにはHTMLDocumentも便利だと思うわ。
>>253 Dim d As Object, elm As Object
Set d = CreateObject("htmlfile")
Set elm = d.createElement("span")
elm.setAttribute "id", "result"
d.appendChild elm
d.parentWindow.execScript "document.getElementById('result').innerText = eval('100/2*3+3')"
Debug.Print elm.innerText
こういうことだろ?
試してないから分からんけどmsscript.ocx使わないから64ビットでも問題ないはず。
計算式しかないんだったら、セルにformulaで設定して評価すれば良くね?
VBA初心者ですが 他から持ってきたデータの数値が文字列として認識されているのを何とかしようとしている最中ですが 末尾の文字1文字消して 1をかける =LEFT(A1,LEN(A1)-1)*1 をシートすべてに適用して結果の数値に置き換えるには一体どのように書けば良いのでしょうか? 表は1シートにひとかたまりのみです。 宜しくお願い致します。
1掛けてどうすんだよ
259 :
257 :2013/04/13(土) 18:10:48.59
>>258 マクロ上では最後に1をかけないと数字に変身してくれませんでした・・・
本屋で初心者向けの入門書買って来い
つーかVal関数で良いのでは? Dim cell As Range For Each cell In UsedRange cell.Value = Val(cell.Value) Next あと、ワークシート関数の場合も、文字列から数字を切り出して 数値に変換するのは、VALUE関数使うのが基本ね *1で強制変換するのは、配列数式などでやむを得ない場合以外やらない方がいい
>>257 何でシートの値を数値にしなくちゃいけないのかな?
264 :
257 :2013/04/13(土) 18:22:49.38
>>263 後にその表を使ってあれこれ計算分析するためです。文字列ですとエラーになります。
265 :
257 :2013/04/13(土) 18:33:28.08
>>261 >>257 今日半日かけてここまでは完成しました。
改行削除 スペース削除 #削除
Sub Macro1()
Worksheets(1).Activate
Range("A1").CurrentRegion.Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").CurrentRegion.Select
Selection.Replace What:=Chr(10), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").CurrentRegion.Select
Selection.Replace What:="#", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
残るは
1文字消して 1をかける・・・・
入門書買って来い
知らんがな
269 :
257 :2013/04/13(土) 19:11:54.66
>>257 =LEFT(A1,LEN(A1)-1)*1
のA1を変数にして
配列変数を駆使して列と行数の数だけ一つづつ繰り返し処理するで合ってますか?
書くのが凄く大変そうですがw
271 :
257 :2013/04/13(土) 19:33:52.96
>>270 他から持ってきたデータには数値の最後にコード不明の見えない1文字が必ず入ってるためです。。半角スペースの置換をかけても何をしても置換では消えてくれませんでした。
>>271 いやいや、
>>270 の式は最後に「*1」を入れてないから文字列のままなんだけど。
その文字列のままだと計算できないと言ってたけど、実際計算できてるということなんだが。
ようは「*1」を入れなくても計算できてるということ。
最後の一文字の削除はLEFTの2つ目の引数「LEN(A1)-1」でやってるでしょ。
これについてはまさしく
>>271 のような理由があるだろうから、ここでは問題にしてない。
273 :
257 :2013/04/13(土) 19:49:37.13
>>272 なるほど
>「*1」を入れなくても計算できてるということ。
そうでしたか、、、となると計算の邪魔をしているのは最後にくっついている見えない文字のようですね。勉強になりました。
274 :
257 :2013/04/13(土) 19:55:13.26
度々すみませんが インポートしたデータに " が混在している物もあり悪さを働いている世なのですが Sub Macro1() Worksheets(1).Activate Range("A1").CurrentRegion.Select Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub を使って ” を置換対称とするにはどう記述すればいいのでしょうか?
275 :
257 :2013/04/13(土) 20:05:23.82
>>274 自動記録で出てきました
Selection.Replace What:="""", Replacement:="", LookAt:=xlPart, _
””””こう書くのですね、、自己解決しました。。
>>271 TrailingMinusNumbers:=True
でもだめ??
277 :
デフォルトの名無しさん :2013/04/13(土) 23:31:46.98
windows7、Excelのバージョンは2010です、 マクロを5分おきに実行したいのですが、 例えば、 シートのA2には開始時刻の17:00が入力してあって、 シートのB2には終了時刻の1:00が入力してあって、 17:00から終了時刻の1:00まで5分おきにマクロを実行したいです、 waitを使うとほかの操作がしにくくなってしまうので、 application.ontimeを使ってやりたいのですが、いい方法はないでしょうか?
recalc
VBA、VBA、あ~あ~、E気持ち~♪
>>277 Application.Ontimeを使えばいいんじゃね?
会社のPC数十台の設定をしていますが マクロセキュリティーを低の設定を1舜で行える方法は無いのでしょうか?いちいち設定画面を開かないといけないのは沢山あると骨の折れる作業です
普通グループポリシーとかで制御するんじゃない? VBAで出来るかなんてみんな考えた事もないでしょ
あるけど、それの自動化は 「悪意を持ってセキュリティーに穴を開ける作業の自動化」 にも通ずるので、こういうところで晒しちゃうのはちょっと愚行のように思うので控える まあ数十台くらいなら、PCが既に全てのPCが起動している状態なら1時間掛からないだろ それも毎日1時間近い作業が必要とかではなく、1回設定したらPC買い換えや OSやOfficeのバージョンアップしない限りそれっきりで終わりの作業なんだから、 自分で調べる能力が無いなら手動でやったら? 1度きりの作業の自動化に、手動でやる以上の時間や労力を費やすのはバカバカしいよ
284 :
277 :2013/04/14(日) 14:25:45.16
会社でExcel使う全社員が、絶対に外部からのBookを開かないという保障がない限り、 セキュリティを低にしちゃいかんだろ。
状況が見えないな 市販のパソコンを何十台も買ったんか? 大量に買う時は、普通は初期状態をメーカーに伝えて、あらゆる設定が済んだやつを一括納品するもんだけど
>>287 数十台程度のオーダーでそんなことしてくれるとこあんの?
いくらでもあるよ 今はそこまでサービスしないとパソコンが売れなくなってる
でるでらでれでろ
>>281 パワポかWordにやり方まとめてメールで全員に送信すれば
と、言ってみるテスト
292 :
デフォルトの名無しさん :2013/04/15(月) 23:55:44.94
VBA初心者です入門書で一通り勉強しました 最初はどのようなものを作ればよいのでしょうか?
子供
自分が使いたいと思う物を作れば良い 作った物に便利さを感じられれば 以後のVBAの勉強にも身が入って、上達も早くなる 興味こそが最大の原動力にして上達の秘訣ですよ
テトリス
数独を解いてみるとか。
将棋で世界一
>>292 家計簿だな。
それも無駄にマクロ入れたやつ。
テトリスいいかもな。 比較的簡単だし、作るのも面白いしな。 ただ仕事に使うための知識になるかどうかは分からんけど。
ネットなどのサンプルコードや参考アルゴリズムを一切見ないでテトリス作れたら その知識と言うより、発案、コーディング、テスト、デバッグなどの一連の能力は 仕事で大いに役立つと思うよ
>>300 テトリスぐらいなら作れるけど
仕事で大いに役に立ったことはないなぁ
いったいどんな仕事だと大いに役立つんだ
そりゃ発案、コーディング、テスト、デバッグなどの一連の能力が必要な仕事に役立つんだろう
は? テトリスを作る仕事だろ
バブルの頃に流行ったイタリアのチョコレート菓子を作るのがいいと思う
セル内の文字列の編集(置き換えとか、一部削除とか)をしたいとき 予め修正したいセルをマウスで選択し 「ツールバーメニューの編集>置換>条件設定」 で実行すると選んだセルだけではなく 現在アクティブなシートの全セルに対して置換が実行されてしまいます 「ツール>マクロ>新しいマクロの記録」でマクロのデモ設定をしようとしても その設定過程で、同様に全セル実行が行われてしまいます、つまりNG セル内の文字列から、編集したい範囲をカーソル反転で指定しておき、その範囲内でのみ マクロで編集を掛けるようにするにはどうすればよいでしょうか?
307 :
305 :2013/04/18(木) 06:49:28.55
A1="ABC:XX , ABC:XX , ACFA , GFD , C:DD , Z:ASD , FAR:XT , GS , DAB:BBC , CD , EF" A2="ABC:XX , ABC:XX , ACFA , GFD , C:DD , Z:ASD , FAR:XT , GS , DAB:BBC , CD , EF" C3="ABC:XX , ABC:XX , ACFA , GFD , C:DD , Z:ASD , FAR:XT , GS , DAB:BBC , CD , EF" D3="D:XX, NFFK , JG:BB , HLD , FUS , IUN , VO:ASD , IJE" ↑このデータは説明用であり、意味はない 例えば、A1の"ABC:XX , ABC:XX , ACFA , GFD , C:DD , Z:ASD , FAR:XT , GS , DAB:BBC , CD , EF"の {C:DD , Z:ASD , FAR:XT , GS , DAB:BBC , CD}の部分だけをカーソルで選択反転させて 「 ,*: 」を「 , 」に置換する 求めたい結果はこうなる{C:DD , ASD , XT , GS , BBC , CD} ↓ A1="ABC:XX , ABC:XX , ACFA , GFD , C:DD , ASD , XT , GS , BBC , CD , EF" A1セルをダブルクリックし、 {C:DD , Z:ASD , FAR:XT , GS , DAB:BBC , CD}の部分だけをカーソルで選択反転した状態でマクロを実行し A1="ABC:XX , ABC:XX , ACFA , GFD , C:DD , ASD , XT , GS , BBC , CD , EF"を得たい ところがA1の{C:DD , Z:ASD , FAR:XT , GS , DAB:BBC , CD}以外の部分、選択してないセルまで置換が実行されてしまう 現在は編集したい部分を新規シートにコピペして、編集してから戻すという作業をしている これをマクロで一発編集できるようにしたい
>>301 職業プログラマならテトリスくらい作れて当たり前なので、何の意味もないけど
職業プログラマじゃないけどExcelを多用する職の奴が、テトリスをあんちょこも既製ライブラリも無しに
そらで作れるくらいのVBA能力持ってたら、活用できる場はいくらでもあるだろ?
301が職業プログラマなら、テトリス作れたところで当然の能力を持ってるだけだから
仕事で特に役に立たないというのも解るが、職業プログラマではなくそれを理解できる頭が無いとしたら、
そもそも君にはテトリス作る能力は無いと思うよ
フラッシュでなら結構簡単だけど、VBAでバグの無いテトリス作るのは、難しくはないが
フラッシュみたいにちょいと囓ってればちょちょいと作れるってわけには行かないからな
309 :
306 :2013/04/18(木) 07:15:19.13
>>307 > A1セルをダブルクリックし、
> {C:DD , Z:ASD , FAR:XT , GS , DAB:BBC , CD}の部分だけをカーソルで選択反転した状態でマクロを実行し
この部分、マクロを実行するのは不可能だと思う。
別の方法を考える必要があるかも。
例えば
・別シーに置換したい文字列を設定しておく。
{Z:}、{FAR:}、{DAB:}
・変換対象のシートで変換するセルの範囲を選択。
・マクロ実行
とか
・変換対象のシートで変換するセルの範囲を選択。
・マクロ実行
・ユーザーフォームを表示して置換したい文字列を設定して「OK」ボタンで置換開始
とか
複数ユーザーの共有ブックで操作するユーザーによって 処理を分岐させたいのですが、可能でしょうか? 具体的には特定のユーザーが共有ブックを閉じようとするときに シート上のCheckBoxをコントロールしたのです。
VB6 OSユーザーでググる
>>311 ありがとうございます。
これで何とかなりそうです
ネットワークユーザーもあるで
Dim CB As New DataObject, buf1 As String, buf2 As String With CB .GetFromClipboard ' クリップボードからDataObjectにデータを取得 On Error Resume Next buf1 = .GetText ' DataObjectのデータを変数bufに取得 On Error GoTo 0 ' エラー処理 End With Dim strClipboard1 As String : Dim strClipboard2 As String If TypeName(buf1) = "String" Then strClipboard1 = buf1 ' 変数buf1のデータをstrClipboard1に入力 Else strClipboard1 = "" End If 処理部分(略) strClipboard2 ← strClipboard1を修正 With CB buf2 = strClipboard2 .SetText buf2 ' 変数のデータをDataObjectに格納 .PutInClipboard ' DataObjectのデータをクリップボードに格納 End With テクストエディターで文字列をコピーして、あるいは文字列の入ったセルをコピーして 上記のマクロを実行 文字列を編集した結果をクリップボードに返す ということをやろうとしたのですが、結果はクリップボードがからのままです どこが問題でしょうか? 但し、処理部分の実行は問題なく、buf2には期待する結果が入力されています
因みにクリップボードソフト(Cliborというフリーソフト)の履歴にはbuf1、buf2のデータは何れも記録されています ところがテキストエディター、あるいはExcelシートの任意のセルにペーストをしても空です
環境: Windows7pro 32bit Excel2013 質問: IEのリンクからVBA入りExcelファイルを開いた場合 ユーザーフォームがExcelウインドウの裏側に隠れてしまう Excel2010までは強制的に前面に表示されていたのですが Excel2013でも前面に表示することは出来るでしょうか。 シートに入力する必要があるためModal=Falseとしています IEやExcel本体側の設定の問題でしたらすみません 起動時のコードです ●ThisWorkbook Public Sub Workbook_Open() Call UserForm1.Entry End Sub ●UserForm1 Public Function Entry() Me.Show False End Function
思ったんだけど WordVBAのスレが無いん勃てます
318 :
317 :2013/04/20(土) 00:02:37.66
勘定科目別の金額を出すシートがあって、 4月金額 5月金額・・・3月金額 年度計 上半期計 下半期計 ・・・(5年度分繰り返し) ・・・(上の構成が1万行繰り返し) 上に書いたみたいに、 横に5年分の金額+年度計、半期計(年度と半期は数式) 縦に1万行位あるんですが、 このシートを、Rangeで範囲指定してDeleteしようとすると、(明細の上部に固定の情報行があるので、シートまるごとは消せない) 削除に10秒位かかってしまいます。 数式が大量に入ったシートをDeleteすると重くありませんか? 10秒かかったシートでも、数式を予め消してDeleteすると1秒未満で終わります。 何か回避する方法ってありませんか? 当然再計算OFFと再描画抑制はやっています。
>>320 以前、このスレでExcel VBA以外の内容を質問されていたことがある。
スレ違いだからということでかなり荒れて、隔離スレとしてできたのが「VBAなんでも質問スレ」。
この経緯を知っている人間から見ると重複スレというより隔離スレなんだけどね。
>>321 よく分からんけど、初期化の為に消すのなら、
消すんじゃなくて、テンプレートシートを使う方法もあるよ。
ユーザーフォームのチェックボックスON/OFFの状態を保存する方法はありますか? ファイルを開くと、毎回チェックが外れてしまっていて困ってます。
セルに保存する。
>>325 セルに保存というのは、具体的にはどうすればできますか?
Range("A1").Value = CheckBox1.Value
レジストリに保存する方法もあったような、やりかたはぐぐれ
>>327 チェックボックスに戻す時は、単純にこの式を左右逆にするだけですか?
ブック(もしくはフォーム)を閉じる時にシートのどっかに保存しておきゃいいだろ。何のためのExcelなんだよ
フォームの値って、 Range("A1").value とか書かなくても、 ControlSourceかなんかで、バインディング出来なかったっけ?
設定ファイルに保存すればいいじゃん 拡張子はiniかcfgな
>>333 設定ファイルの管理がめんどくさいでしょ。
ブック以外にファイルが必要だし、読込・書込の処理が必要になるし。
チェックボックス設定用のシートに書いておけば管理する必要ないし処理も楽。
チェックボックス設定用のシートを開いたり閉じたりする処理が必要じゃん 手間は一緒じゃん
???
そんなの秘書に覚えといてもらえばいいじゃん 起動も秘書にやらせて、チェックボックスを元に戻してもらうだけだし
338 :
334 :2013/04/20(土) 22:37:08.47
>>335 ユーザーフォームのコードを書いているブックにチェックボックス設定用のシートを作っておけば
ブックを開く手間なんてないけど。
もしかしてチェックボックス設定用のシートをActiveにする必要があるとか思ってるのか?
チェックボックスのインデックスをカンマで取得して、regexpでreplaceするなどして、VBEで自動でソースを書き換えておくなんて方法も。
もちろん起動時にはカンマ区切りのインデックスを基にforループでチェックボックスを回して有効にしていく。など。うん、めんどくさ。 ブックのクローズ時に非表示シートに値を転写しとくのが楽だわ。って、普通ファイル保存したらチェックボックスの状態も保存されるんじゃ。
>>321 .value = "" で消せばいいじゃん
>>316 .activeだか.activateで最前面じゃないっけ
2013わかんないや
面白いと思ったら笑いなさい
おバカだと思った場合はどうすれば?
348 :
デフォルトの名無しさん :2013/04/22(月) 16:42:51.49
ある選択範囲を フィルターのかかったシートに、その可視セルだけにその範囲をコピペするためのコードは どうなりますか?
どうもこうも無いだろ、自分で試せよ
350 :
348 :2013/04/22(月) 17:28:05.67
それができないから困っておる。
で、何がわからないんだ?
>>341 一緒でした。
ちなみに、ClearContentsでも消すのに10秒ぐらいかかります。
356 :
348 :2013/04/22(月) 19:16:03.76
357 :
348 :2013/04/22(月) 19:18:40.69
>>351 なにがわからないかを把握できないということは
それだけVBAのスキルがないからだ。
Excelに熟知し、VBAの達人なら、
>>348 の言うことで何が言いたいかはすぐ分かるはず。
これもスキルのうちだよ。
2chではエスパーと呼ぶらしいが。
>>348 上から目線過ぎなので知っていても教えないw
359 :
348 :2013/04/22(月) 19:40:49.30
>>358 VBAの達人なら自分の技術力に自信を持ってるだろうから、そんな卑屈なとらえかたはせんはずだ。
君も初心者の一人ということだ。そんな人に教えを請おうとは思わん。
負担を掛けるだけだからね、下手に背伸びされて間違ったことを教えられてもかなわん。
VBAの達人が現れるのを待つことにするよ。
360 :
348 :2013/04/22(月) 19:52:25.82
>>359 あなたは愉快な偽物だ。
違いはsageが偽物。
362 :
デフォルトの名無しさん :2013/04/22(月) 20:11:57.58
XP、エクセルは2002です 作成済のあるmacro1を呼び出して あるフォルダ内の全てのブックに適用するためのmacro2を作りたいと思っています。 macro1は印刷設定をちょっと変える程度の簡単なものなので macro2の中に直接コードを書き込む事も考えたのですが できればmacro2がmacro1を呼び出す形で実行したいと思っています。 余談ですが、 いろいろ検索した結果、「現在開いている」ブック全てに macro1を適用するmacro2を作ることはできました Sub macro2() Dim oBook As Workbook For Each oBook In Workbooks oBook.Activate Call macro1 Next End Sub
363 :
デフォルトの名無しさん :2013/04/22(月) 20:15:03.14
(
>>362 の続き)
Sub try()
Dim Fname As String
Fname = Dir("\*.xls")
Do Until Fname = ""
Workbooks.Open "\" & Fname
'何かの処理
Debug.Print Fname
Workbooks(Fname).Close True
Fname = Dir()
Loop
End Sub
こんなのも使ってなんとかやれないものかと思ったのですが
無理でした
'何かの処理
のところをCall macro1としてみたのですがダメでした
まるで知識のない状態で検索だよりで頑張ってみたのですがこの辺が限界です
助けてください・・・
364 :
デフォルトの名無しさん :2013/04/22(月) 20:16:23.04
>>362 を修正
*作成済のmacro1を呼び出して
365 :
デフォルトの名無しさん :2013/04/22(月) 20:24:35.33
macro1 じゃなくて macro1 でした これも修正
>>361 >>1 ★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
自分で答えようとせず、Googleに丸投げしようって人は、お断りだ。
プログラマは自分でプログラムを組み、コードを書く人の事だと書いてある。
君は初心者どころかプログラマでもない。素人に用はないよ。
出来なくも無いけどセキュリティレベルによる あとデータとロジックは分離すべきなのでブックを開いてマクロを仕込むのはどうかと macro1が各ブックを開いて印刷設定変えて保存して~ではダメなん?
>>362 macro1、macro2が別々のブックに定義されているのか一緒のブックに定義されてるのかさっぱりわからんw
この情報だけだと何とも言えない。
>>367 仰る事の100%は理解できなかったのですが
macro1がフォルダ内の全てのブックを順に開き
印刷設定を変えてから上書き保存していくということですね?
それでも構いません
macro2がmacro1を呼び出していく方法は
知っていれば他の用途にも応用できそうだと思っただけです。
問題がありそうならやめておきます。
370 :
361 :2013/04/22(月) 20:39:20.61
>>366 ググってみてそれらしきことが書いてあったから2ch風に回答してだけだが何か?
ググれば瞬殺の内容だったぞw
>>368 作成済のmacro1の保存先を「個人用マクロ ブック」にしてあります。
こうすることで他のブックを開いたときにも使えるとどこかに書いてあったような・・・
372 :
348 :2013/04/22(月) 20:41:19.11
>>366 そろそろ落ちますね。
ひょっとしたらテレホのときまた来るかも。
ではまたー。
373 :
362 :2013/04/22(月) 20:43:26.96
ちなみにmacro1はこんなものです Sub Macro1() With ActiveSheet.PageSetup .PaperSize = xlPaperLetter End With ActiveWorkbook.Save End Sub
もしかしてマクロが他ブックに作用するには何か特殊な事が必要だと思ってる?
375 :
362 :2013/04/22(月) 20:53:10.47
>>374 いえ
印刷設定の変更が必要なブックが大量にあるため
いちいち手動でブックを開いてからmacro1を適用していくと大変なのです
なのでmacro2という別のマクロを組み、これを用いてmacro1を一括して
すべてのブックに適用できないかと思ったのです
見当外れの回答かもしれませんが
>>370 答えをググって見つけたのかね?君は知りもしなかったのかね。
やはり君はプログラマじゃないな。ググってそれらしいものを見つけ、自分が達人だと錯覚した素人だ。
能力を正しく推し量ることができてないから、そこらの素人より質が悪い。その証拠に瞬殺したと
さも自慢げに書いておるが、それが正しいかは質問者である私にしか判断できん。
私にその答えを言わず、ググって瞬殺した(笑)と言っとるだけだ。
前にも書いたが君のように背伸びして答える人を、私は求めておらんのだよ。
ググったことを誇りたいならTwitterにでも書いたらどうだね。
ツイートしてくれる奇特な人が見つかるかも知れんよ。
>>375 >>363 のアプローチで合ってるね
Sub Macro1(WorkBook book)
With book.ActiveSheet.PageSetup
.PaperSize = xlPaperLetter
End With
book.Save
book.Close
End Sub
ActiveXXXは実行時にどうなるか分かりづらいので極力無しの方向で。
Sub try()
Dim Fname As String
Dim book as WorkBook
Fname = Dir("\*.xls")
Do Until Fname = ""
'Openで開いたBookを返してくれる
Set book = Workbooks.Open "\" & Fname
'bookを処理対象にしたいので引数で渡す
Call macro1(book)
Debug.Print Fname
Fname = Dir()
Loop
End Sub
ActiveSheetの意図は分からなかったけどこんなかんじ
378 :
362 :2013/04/22(月) 21:31:03.35
>>377 おお・・・ありがとうございます!
手元にそのパソコンがないので明日にでも動作確認してみます。
macro1はマクロの記録機能を使って自動で書かれたVBAから
無駄かな、と思われる部分をそぎ取って作り直し、動作確認をしたものです。
なので、おかしな所があると思います。「ActiveSheet」もそのひとつだと思います。
いずれにしても各ブックの最初の1シートにしか表がないので一応問題なく使えていたのかな・・
解説付のコード、勉強になります。
もう少しまともな知識身につけないとダメですね
ActiveSheetsは保存時にActiveだったシートだろうから 左端のシートならWorkSheets(1)で
380 :
362 :2013/04/22(月) 21:46:08.92
>>379 分かりました
macro1はこう作ることにします
Sub Macro1(WorkBook book)
With book.WorkSheets(1).PageSetup
.PaperSize = xlPaperLetter
End With
book.Save
book.Close
End Sub
そうだね あとDir("\*.xls") やった事ないんだけど期待したファイル取れてるの
382 :
362 :2013/04/22(月) 22:23:56.60
>>381 >>363 の'何かの処理の部分で毎回エラーがおきているので
Dir("\*.xls") が問題あるかどうかはまだ分かりません。
http://oshiete.goo.ne.jp/qa/5048673.html この辺を見ながら適当に改変したと思います
今、古いXPマシンに2002を入れて試してみたのですが
エラーが出てしまいました
>>380 のmacro1で
Sub Macro1(WorkBook book)
のbookの部分に
>コンパイル エラー:
>修正候補:区切り記号 または)
>>377 のmacro2で
Set book = Workbooks.Open "\" & Fname
の"\"の部分に
>コンパイル エラー:
>修正候補:ステートメントの最後
macro2でのエラーは今指摘して頂いた部分と関連ありそうな・・・
>>382 >Sub Macro1(WorkBook book)
引数の指定が違ってるんじゃ。
Sub プロシージャ名(引数名 As 型名)
>Set book = Workbooks.Open "\" & Fname
Workbooks.Openはオブジェクトを返さない。
Workbooks.Open "\" & Fname
Set book = Workbooks(Fname)
っていう感じになるんじゃないかな?
動作確認してないから保証しないけど。
1こめは確かにそう、ごめん でもOpenて戻り値あるでしょ? 左辺を追記した事で()が必要になったとかじゃなくて? Set book = Workbooks.Open("\" & Fname)
385 :
383 :2013/04/22(月) 23:02:08.65
386 :
デフォルトの名無しさん :2013/04/24(水) 07:36:59.87
VBAの構文について教えてください。 ①ダイアログボックスが自動的に開く。 ②ユーザーがExcelのファイルをどれか一つを指定する。(開いてはダメ。) ③その指定したファイルのディレクトリ情報を手に入れる。(表示される。) ①~③を含んだマクロをVBAで作りたいです。 ①だけなら自分一人で作成できたのですが、 VBA初心者なのでできるだけ簡単な構文で作成したいです。
387 :
デフォルトの名無しさん :2013/04/24(水) 07:45:00.46
>>386 できるさ。
やりかたは覚えてないけど、調べたらすぐできる。
オレみたいなVBA達人でも、しばらく使ってない構文は忘れるから
VBA含めプログラミング力は調べる能力だよ。
389 :
デフォルトの名無しさん :2013/04/24(水) 21:12:17.16
>>387 >>388 ありがとう。
とりあえず自分でコード書いてみた。
Sub 選択ファイル()
Dim selectFile As Variant
Dim i As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "ファイル選択"
.InitialFileName = ThisWorkbook.Path
.AllowMultiSelect = True
.Filters.Add "Excelファイル", "*.xls;*.xlsx"
.Filters.Add "すべてのファイル", "*.*"
If .Show = -1 Then
i = 1
For Each selectFile In .SelectedItems
Cells(i, 1).Value = selectFile
i = i + 1
Next
End If
End With
End Sub
とりあえず、これで第一段階は終わったんだけど、
最終的に選択したファイルが、すべてExcelのシート内にディレクトリ情報が縦に順に表示されないといけないから
もう少し手を加えないといけない。
またなんかわかったらよろしく頼みます。
>>389 やりたい事が伝われば答えられるよ
>最終的に選択したファイルが、すべてExcelのシート内にディレクトリ情報が縦に順に表示
もうすこし具体的に
何がしたくてどこまで出来ていてどこで躓いているのか
>>389 もしかして
Cells(i, 1).Value = selectFile
のselectFileをフォルダ名とファイル名に分離したいってこと?
なんだパクリか。 パクったんだったらパクったと言えばいいのに。 最低だな。
これは擁護出来ない
395 :
デフォルトの名無しさん :2013/04/25(木) 11:46:59.17
396 :
デフォルトの名無しさん :2013/04/25(木) 11:47:31.69
すみません、ファイルのパスはsampleです。
>>395 > 変換してから読み込みを行なってまた変換ということになるでしょうか?
それをまず試せばいいじゃん
>>395 サンプルがオリジナルの状態で落とせねえ
ロダ変えるか2つまとめて圧縮しろ
とりあえず作ってみたけど、最後の「log close」が消える。なんでだ? Sub Macro1() Open "sample.log" For Input As #1 Line Input #1, a Close #1 b = Split(a, vbLf) Range(Cells(1, 1), Cells(UBound(b), 1)) = WorksheetFunction.Transpose(b) Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), _ Array(68, 1), Array(89, 1), Array(104, 1), Array(117, 1), Array(131, 1)), TrailingMinusNumbers:=True End Sub
>>399 消えるというより改行が入ってないから一行として取得できてない。
Log closeの行に改行を入れるとちゃんと入る。
401 :
デフォルトの名無しさん :2013/04/25(木) 14:09:41.06
ごめん、めっちゃ単純なミスしてた。これでちゃんと動く
Range(Cells(1, 1), Cells(UBound(b) + 1, 1)) = WorksheetFunction.Transpose(b)
>>400 vbCrLfは1つも入ってないんだから、その理屈だと1行も読み込めないはず
>>398 制限時間3分のリンク直撃で普通に落とせたぞ
Range("A1:A" & UBound(b) + 1) = WorksheetFunction.Transpose(b)
405 :
デフォルトの名無しさん :2013/04/25(木) 15:38:22.33
みなさんありがとうございます。
>>399 さんのコードでsampleは実行できましたが、実際使うlogではsample.logの6行目と8行目に
===============================
log
===============================
のように半角イコールのみの行があり、どうしてもここで止まってしまい動きませんでした。。
406 :
デフォルトの名無しさん :2013/04/25(木) 15:41:15.09
続き 止まったのはRangeのところです。 この場合どのようにして回避すれば良いでしょうか。
後だしw 6行目と8行目だけ飛ばすなりなんなりすればいいだけじゃん、自分で工夫する気ゼロかよ
408 :
デフォルトの名無しさん :2013/04/25(木) 15:48:36.86
改めて質問してんのに後出しというやつは頭がおかしい
410 :
デフォルトの名無しさん :2013/04/25(木) 15:50:45.31
後だしの意味を知らないんだろ、そっとしておいてやれよ。
407 名前:デフォルトの名無しさん :2013/04/25(木) 15:41:53.97 後だしw 6行目と8行目だけ飛ばすなりなんなりすればいいだけじゃん、自分で工夫する気ゼロかよ バカ乙
412 :
デフォルトの名無しさん :2013/04/25(木) 15:53:25.41
まあまあお前ら落ち着けよ、とりあえず
>>407 お前は消えろ。
>>407 禿同。
これを後出しと言わず何を後出しというのか。
「改めて質問」というより、マクロを作る際、仕様をきちんと把握していなかったのが問題。
結果的に条件を後出しする羽目になる。
「改めて質問」するのであればきちんと仕様を固めるか、或いは
条件がまだ固まってないからまた質問するかも、とか一文を加えておけばいいのに。
コミュ障と言われても仕方ない。
>>405 b(5) = "'" & b(5)
b(7) = "'" & b(7)
もっと本番に近いサンプルを出せばよかったのに
ってか本人作ってないのか。
条件も後出しだから
>>399 のコードじゃ全然ダメってことね。
>>399 くだらねぇ時間を過ごしちまったね。
かわいそうに。
>>413 そうしてほしいのであればそうしてくださいとお願いしろよ。
相手が自分の意のままにならないからといってこうすればいいのに
と愚痴るのはただのわがまま。コミュ障はお前。質問にろくに答えられない
くせにどうでもいいところで愚痴愚痴いう女の腐ったような奴。まじきめえ。
>>416 >>399 はとっかかりを掴む上で有益だ。役に立たなかったんだと
卑下するような態度をとって、後出しだからと言ってそれを質問者の
せいにする。鬱病のやつがいるとこんなにもスレが暗くなる。
さっさと線路に飛び込んで死ね。
422 :
デフォルトの名無しさん :2013/04/25(木) 16:24:46.07
前スレの雰囲気をぶち壊しにしたのもそのテンプレ厨。 しらけるよな、こういう奴が紛れ込むと。
424 :
デフォルトの名無しさん :2013/04/25(木) 16:36:11.43
>>393 もそうなんじゃないか?
憂さ晴らしならよそでやれよ
>>424 =423=425
未だに根に持ってるとか、どんだけw
>>426 同じ人だと思ってんの?
どんだけシャドウボクサーなんだよw
>>426 だな。
スレの雰囲気云々言ってる奴いるけど叩こうとするレスが更に雰囲気悪くしてる。
俺はスレの雰囲気なんてどうでもいいんだが。
一つ分かっているのは、
前スレから荒しているアスペの
>>1 が、
未だ居座り続けて住人に不快感を与えているということだな。
成りすましの自己レスキモい
>>428 自分は関係ない、でも自分はこう思うと主張する腰抜けw
>>1 は社会的常識がわかりにくく、自分の気持ちや欲求しか見えなくなりがちで、
相手の都合や反応に関係なく、一方的な行動に走ってしまいやすい。
もう、精神的な問題を疑うレベルの粘着質
まあ他力本願のゆとりにとっては都合が悪いことが書いてあるからなぁ
VBA初心者ですが マクロの設定のオプションという箇所でプロシージャにショートカットキーを割り当てる事が出来ますが 設定し 実行時に処理に時間がかかる場合処理が終わる前にショートカットキーを押すと コマンドの実行が中断されましたとメッセージが出てきて止まってしまうのですが 処理が終わるまで ショートカットをスルーするか ショートカットを一時的に無効にするか もしくはエラーを出さなくするようにする事は出来ないのでしょうか?!
VBA歴長いけど知らなかった ショートカット設定はマクロ記録されないの? DoEvents使ってる? 動作中EXCELごと非表示にしちゃうとか
>>438 「excel vba ショートカットキー 無効」でググるとそこそこヒットするんだけど何か試したの?
>>440 「excel vba ショートカットキー 無効 何を試したか」でググればいんじゃね?w
ググる厨はテンプレ厨 これマメな
444 :
440 :2013/04/28(日) 16:54:41.35
>>441 ここに質問して回答待つくらいならググったほうが早く解決することが多いと思うけど。
ってかさ俺を煽るんだったら回答しろ。
>>444 コミュニティを全否定してるな、お前は二度とここに書き込むな
永遠とググってろ
>>444 「ググったほうが早く解決する」でググればいんじゃね?w
お前等いい加減にしろ子供の喧嘩と一緒だな 何時まで続けるんだ どっちも質問潰してそんなに面白いか 自重しろ
ヤフー知恵袋とOKWEBはスパムだろう。見ていてイライラする。
Findで二つの条件で検索する方法はないでしょうか? B列がキーワードと一致し、なおかつE列が空白である所を検索したいのです。 For a = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If .Cells(a, 2).Value = ord And .Cells(a, 5) = "" Then '処理 End If Next で一応はできたのですが、データ数が多くなると処理速度が遅くなるので Findでやりたいのです
無効:Application.OnKey "{F1}", "" 有効(初期値に戻す):Application.OnKey "{F1}" マクロ設定:Application.OnKey "{F1}", "マクロ名" の方法で、ショートカットのコントロールが可能です。 これか 本文をペーストすれば一番速いだろう。w
>>450 Columns("B:E").Select
Selection.AutoFilter
ActiveSheet.Range("$B$1:$E$9999").AutoFilter Field:=1, Criteria1:=ord 'B列がキーワードと一致
ActiveSheet.Range("$B$1:$E$9999").AutoFilter Field:=4, Criteria1:="=" 'E列が空白
For a = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Rows(a).Visible = True Then '条件に一致していたら処理
'処理
End If
Next
453 :
450 :2013/04/28(日) 17:47:53.63
Findでやりたいって言ってんだろが、あほ
>>451 これをやってみてダメだったということ考えないのかな?
単純なIfを数万回実行したところで、そんな遅くなるか? 遅くなる原因はほかにあるとしか
>>450 FindでB列のキーワードを検索してから、その結果に対してIfでE列を検査すればいいんじゃないの?
B列とE列を調べる順番は逆でもいいいけどさ、データの分布を見てどっちか効率のいい方で
回答者が決め打ちの仕様でコード書くのはよくないね。 仕様が分かってコード書いて回答するのもよくないけど。
458 :
450 :2013/04/28(日) 19:22:56.13
>>456 そのやり方が良さそうですね
ありがとうございます。
459 :
デフォルトの名無しさん :2013/05/03(金) 12:46:50.33
VB EditorのフォントをSource Code Proに設定すると文字化けします。 欧文フォントなので日本語表示できないためです。 下記URLを参考に、Migu 1Mの日本語フォントを FontLink しましたが, VB Editorの文字化けは治りません。他のエディタ(gPad)では文字化け しなくなりました。 kagura-c.info/blog/2012/10/10/the_font_make_programmer_happy/ ※http省略 VB Editorで欧文フォント(Source Code Pro, Dejavu Sans Mono)を 文字化けせず使う方法を教えて頂けないでしょうか? ※カッコイイフォントが使いたいという自己満足な話で申し訳ありませんが、 ご協力頂けると幸いです。
460 :
デフォルトの名無しさん :2013/05/03(金) 12:51:37.46
※連投申し訳ありませんが、補足します。 >VB EditorのフォントをSource Code Proに設定すると文字化けします。 英数字は文字化けせず、全角の日本語だけ文字化けします。 これを解決したいと思っています。
日本語を使わない
463 :
デフォルトの名無しさん :2013/05/03(金) 15:25:44.68
>>462 アドバイスありがとうございました。
fontforgeをインストール後、日本語フォントを開き、
Source Code Pro の英数字フォント部分をコピー&ペーストしました。
しかし、フォントファイル出力時にエラーが発生します。
お勧め頂いたのに恐縮ですが、VB Editor でSource Code Proの利用は
ハードルが高いようです。
大変お世話になりました。
464 :
デフォルトの名無しさん :2013/05/04(土) 01:56:14.69
Source Code Pro って Mac 用なんか TTF のフォーマットが違うっぽいな
データ数3000超 E列でフィルターを掛けた結果、500件くらい抽出されたとする その抽出されたデータ数をカウントするにはどうすればいいのでしょうか?
467 :
465 :2013/05/08(水) 18:36:05.30
スマートアートオブジェクトの図について教えてください。 vbaから、挿入した画像のみをクリアして、初期状態に戻す方法がありましたら教えてください。
OS:7 Excel2003、Excel2007 任意のセルに数字を入力したときにその数値に対 応する文字列を同一セルに変換して表示する方法 を教えてください。対応する文字列は列ごとに変わります。
続き 例えばB列に1と入力したら課税、2と 入力したら非課税、3なら-、E列には、1と入力し たら有、2なら無、3なら-、などのように列ごと に文字列が変わっていきます。 VBAならできるということはわかったんですがどうやって組むのかまでたどり着けませんでした。ご教授お願いします。
>>470 どこかのセルに何かが入力されるとWorksheet_Changeイベントが発生する
必要な情報は変数Targetに自動的に入ってくるので、それに応じて処理を分ける
列はTarget.Column、入力された内容はTarget.Valueで取得する
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target
Select Case .Column ' 列によって分ける
Case 2 ' B列の場合
Select Case .Value ' 数字によって分ける
Case 1: .Value = "課税"
Case 2: .Value = "非課税"
Case 3: .Value = "-"
End Select
Case 5 ' E列の場合
Select Case .Value ' 数字によって分ける
Case 1: .Value = "有"
Case 2: .Value = "無"
Case 3: .Value = "-"
End Select
End Select
End With
Application.EnableEvents = True
End Sub
>>471 ありがとうございます!!
試してみます!!
>>471 プログラムを書くという楽しみを奪っているんだよなぁ。
>>474 それをそのままコードに落とせばできるよ。
マクロで記録されないから、デバッグしようにも手が出ないよ。
EXCEL2003でrngという変数を使っていたのですが、 EXCEL2010では勝手にRng(先頭が大文字)になってしまうみたいなのですが、 原因について教えて下さい。 OSはWindows7です。
どうせVBAだ気にすんな
>>477 SortオブジェクトにRngプロパティがある
プロパティ名を勝手に変数名に使うと自動的に頭文字が大文字になる
480 :
470 :2013/05/10(金) 20:49:34.96
>>471 試してみました。
思い通りに変換できました!おかげで入力速度が倍になりました。本当にありがとうございました!
応用出来そうなので少しずつ勉強していきます。
>>479 そのようなものが追加されたのですね…
教えてくださってありがとうございました。
482 :
デフォルトの名無しさん :2013/05/10(金) 23:54:11.23
A列に、【11】、【10】と【】にランダムな数字に囲まれたセルがあります。 これをB列に移動させたいのですが、どうしてもうまくいきません。 書いたコードはこちらです Sub Macro2() Dim i As Long, j As String, tmp As Variant For i = 900 To 1 If InStr(Cells(i, 1), "【") >= 1 Then Cells(i - 1, 2) = Cells(i, 1) End If Next End Sub
900 to 1を 1 to 900 で試してみ。 それかstep指定するか。
あ、1はだめだね。 cells( i - 1 , 2 )にてi = 1はエラーになると思う。 あと見た感じ移動じゃなくてコピーっぽいけどそれは前後ソースがあるんだよね?
485 :
デフォルトの名無しさん :2013/05/11(土) 00:10:12.07
1 to 900にしたらあっさりできました^^ ありがとうございます。
>>485 はたして何がダメだったのか理解できたのだろうか?
487 :
デフォルトの名無しさん :2013/05/17(金) 05:02:59.62
よろしくお願いします。 cells(i,1)に、2013年 5月12日(日) [09:50] という文字列が入っていて [09:50]を削除したいのですが、どうすればいいでしょうか。 right(cells(i,1),8)="" というのを試してみましたがダメでした。
488 :
デフォルトの名無しさん :2013/05/17(金) 05:04:09.56
cells(i,1)に、2013年 5月12日(日) [09:50] もうひとつお願いします。↑で、「5月」を抜き出し、セル(i+1,1)に入れたいのですが、可能でしょうか
489 :
デフォルトの名無しさん :2013/05/17(金) 05:38:25.88
cells(i,1) = Func487(cells(i,1)) cells(i+1,1) = Func488(cells(i,1)) Function Func487(ByVal s As String) As String Func487 = Left(s, Len(s) - Len(" [09:50]")) End Function Function Func488(ByVal s As String) As String Func488 = Mid(s, 6, Len(" 5月")) End Function
>>487 > right(cells(i,1),8)=""
これしか試してないの?
ここまでできているなら試すことがまだありそうなものだけど。
>>489 入力となるcells(i,1)を書き換えちゃダメだろ。0点。
492 :
デフォルトの名無しさん :2013/05/17(金) 06:15:37.72
>>491 なんで?入力となるcells(i,1)を書き換えちゃダメだって法律に書いてあるの?
ないよね。じゃあお前が間違ってるということになるよね。はい論破。
>>492 プログラムの基本なんだが。
その入力をまた使いたいときに使えなくなるだろ。
書き換えてもいいという仕様がない限り、絶対やってはいけない。
加えて言うとプロシージャ名も意味不明な名前もしてるし
質問者はできるかどうかだけ聞いてるのにコード書いちゃってるし
プロシージャ名が意味不明な名前になってる。
-10000000点
>>494 すまん。見落としてた。
ただ疑問は残る。
入力となるデータを書き換えることになるが本当に問題ないのか?
→試したコードではそれらしき臭いはあ感じはあるけど明示はされてない。
cells(i,1)のデータを加工した結果をcells(i+1,1)に入れるということだが、
cells(i,1)の次の入力データと思われるcells(i+1,1)を上書きして問題ないのか?
496 :
デフォルトの名無しさん :2013/05/17(金) 07:05:49.98
>>493 プログラムの基本だって昭和何年何月何日何時何分何秒にどこで誰が誰に言ったの?
仮にそれが基本だとして基本を遵守しなくちゃいけないって日本国憲法に書かれてるの?お~ん?
FuncはFunctionの短縮形で数字はレス番号。コード書いちゃいけないとは法律に書かれていないし、
プロシージャの意味がわからないのは国語的推理能力と想像力が著しく欠如している
お前の頭が原因だから完全にお前の両親のせい。はい論破。
497 :
デフォルトの名無しさん :2013/05/17(金) 07:10:18.01
>>495 すまんですむか。謝る相手を間違ってるんじゃないか?お~ん?
常識というものを教わらずに甘やかされて育てられたのかお前はお~ん?
自分が間違ってたのが原因で人様にご迷惑おかけしたんだから、申し訳ございませんでした
と述べてきちんと謝罪するのが社会人としてのあり方だよね。菓子折りもってくるのが
筋だけど、俺はお前の汚い手でさわられたものを口に入れると蕁麻疹が出るだろうから、
それはいらないけど、きちんと謝罪するべきだよね。俺に対して。俺はまだお前からきちんと
謝罪してもらってない。はい論破。
>>496 一般的に言われていることだな。
じゃぁ聞こう。
入力データを再度使いたいときはどうする?
入力データは既に書き換えられて存在しないということになるんだが。
499 :
デフォルトの名無しさん :2013/05/17(金) 07:15:38.05
491 名前:デフォルトの名無しさん :2013/05/17(金) 06:07:54.22
>>489 入力となるcells(i,1)を書き換えちゃダメだろ。0点。
495 名前:デフォルトの名無しさん :2013/05/17(金) 07:04:06.30
>>494 すまん。見落としてた。
ただ疑問は残る。
疑問が残るという自己中心的かつそれが基本だという自意識過剰的な
根拠でダメだといって他人に言いがかりをつける人の風上にも置けない、
半人前どころか半漁人レベルの人でなし。謝罪はまだか?はい論破。
>>499 明示はされていない。
コードで書き換えてもいいような感じはあるが。
501 :
デフォルトの名無しさん :2013/05/17(金) 07:20:35.48
>>498 プログラムの基本だって昭和何年何月何日何時何分何秒にどこで誰が誰に言ったの?お~ん?
一般的じゃあ逃げられないよね~一般的に考えてwwwwwwぷげらwwwww使い方あってる?wwww
入力データを再度使いたいって平成何年何月何日何時何分何秒にどこで誰が誰に言ったの?お~ん?
関係のない話をでっちあげて言いがかりをつけてすみませんでした二度とこのようなふざけた真似は
いたしませんと謝罪するのがお前が取るべき行動だ。はい論破。
>>497 菓子折り持って誤りに行きたいんだけど住所、名前、電話番号、顔が分からないんだよ。
ここに晒してくれる?
503 :
デフォルトの名無しさん :2013/05/17(金) 07:24:51.53
>>500 だから一般的にというものすごくあいまいな取るに足らないようなことを
根拠にして、ほとんどお前の妄想にもとづいて善意の人である俺様に
言いがかりつけるような真似をしたんだよお前は。自覚ないわけ?
そのことについては謝罪しろよ、あまりなめたことやってると俺もぶちぎれるよ。
びちぎれさせたくないだろ?お~ん?はい論破。
505 :
デフォルトの名無しさん :2013/05/17(金) 07:27:33.16
>>502 あのさ、だからそういうふざけた態度取ってないできちんと謝罪しろっていってんだよ。
掲示板だからってなめたことやってんなよ。なあ。わかんだろ、いいかげんにしようや。はい論破。
>>503 菓子折り持って謝りに行くから住所、名前、電話番号、顔を晒してくれ。
507 :
デフォルトの名無しさん :2013/05/17(金) 07:29:23.99
>>506 それで逃げようと考えてるわけ?甘いんじゃねえの。
491 名前:デフォルトの名無しさん :2013/05/17(金) 06:07:54.22
>>489 入力となるcells(i,1)を書き換えちゃダメだろ。0点。
495 名前:デフォルトの名無しさん :2013/05/17(金) 07:04:06.30
>>494 すまん。見落としてた。
ただ疑問は残る。
自分が間違ってたのが原因で人様にご迷惑おかけしたんだから、申し訳ございませんでした
と述べてきちんと謝罪するのが社会人としてのあり方だよね。はい論破。
>>505 社会人としてのあり方なんでしょ。
どこのだれかわからないんだよ。いい加減住所、名前、電話番号、顔を教えてくれよ。
509 :
デフォルトの名無しさん :2013/05/17(金) 07:30:52.65
491 名前:デフォルトの名無しさん :2013/05/17(金) 06:07:54.22
>>489 入力となるcells(i,1)を書き換えちゃダメだろ。0点。
495 名前:デフォルトの名無しさん :2013/05/17(金) 07:04:06.30
>>494 すまん。見落としてた。
ただ疑問は残る。
自分が間違ってたのが原因で人様にご迷惑おかけしたんだから、申し訳ございませんでした
と述べてきちんと謝罪するのが社会人としてのあり方だよね。はい論破。
510 :
デフォルトの名無しさん :2013/05/17(金) 07:42:58.74
506 :デフォルトの名無しさん:2013/05/17(金) 07:28:15.70
>>503 菓子折り持って謝りに行くから住所、名前、電話番号、顔を晒してくれ。
ごめんの一言が言えないだっさいやつがひねり出した苦肉の策wwwwwwwwwww
wwwwww素直に謝ったほうがよほどカッコつくわwwwwwwバカすぎるwwwwwwはい論破。
511 :
デフォルトの名無しさん :2013/05/17(金) 19:11:04.94
ものっすごく初歩的な質問で申し訳ないのですが、教えて下さい。 サブルーチンでワークシート内のセルを操作する時は、 引数でワークシートを特定しておいた方がいいと思うのですが、 こだわりすぎでしょうか? 以下のような感じです。 (実際にはもっと複雑な処理をするものですが簡略化しました) なおバージョンはExcel 2010 です。 Sub Test() Dim wrk as Worksheet Application.ScreenUpdating = False Set wrk = Sheets("シート1") Call SwapCol(wrk, "A", "B") Application.ScreenUpdating = True End Sub Sub SwapCol(ByRef wrk As Worksheet, ByVal Col1 As String, ByVal Col2 As String) With wrk (列Aと列Bを交換する処理) End With End Sub 「そんなもんActiveSheetでいいべ」と同僚に指摘されたのですが、 ActiveSheetだと、マクロ動作中に変な操作(別のファイルを開くなど)をするとマクロが暴走してしまいそうな気がして、 全てのサブルーチンに上記のようにワークシートオブジェクトを指定するようにして、ActiveSheetは極力使わないようにしています。 おかしいでしょうか・・・
>>512 いいと思う。
ActiveSheetの見解もまさしくそうだし、バグの元凶だから俺も使わない。
しかも、別シートでも同じことをしたいときに使えるし。
合ってるよ 特にそれが共通関数であれば 関数が対象シートを特定しない事で再利用性が上がる 再利用性はソフトウエア品質を決定する大きな要因のひとつだから 自力で気付いたなら素質あると思うよ
>>513-514 レスありがとうございます。
普段あまりプログラミングはしなかったので自信がありませんでしたが、
合っていることが解り、助かりました。
ありがとうございました。
For i = 2 To a のような繰り返し処理を行う場合、変数aに2より小さい値が入っていると、For文内の処理は、一度も実行されませんよね? 意図的にこのような使い方をすることについて、何かデメリットはありますか?
518 :
デフォルトの名無しさん :2013/05/19(日) 22:19:28.54
プログラムは意図した通りに動くのではなく書かれた通りに動く
519 :
デフォルトの名無しさん :2013/05/19(日) 22:24:30.34
>>518 ソクラテスはプログラムを意図したとおりに書く。
ゆえにプログラムはソクラテスが意図したとおりに動く。はい論破。
意図したとおりに動かないという命題ではない
521 :
デフォルトの名無しさん :2013/05/20(月) 01:40:32.45
for i to 100 If Left(Cells(i, 1), 2) = "20" Then Cells(i + 2, 21) = p For k = 3 To p o = 1 For l = 3 To p If Cells(k, 17) > Cells(l, 17) Then o = o + 1 End If Next l Cells(k, 8) = o Next k End If
522 :
デフォルトの名無しさん :2013/05/20(月) 01:43:36.74
for i to 100 If Left(Cells(i, 1), 2) = "20" Then Cells(i + 2, 21) = p For k = 3 To p o = 1 For l = 3 To p If Cells(k, 17) > Cells(l, 17) Then o = o + 1 End If Next l Cells(k, 8) = o Next k End If next 一行目に「20**年」と表示されている成績表を幾つか作りました。 その表は、すべて同一行数ではないので(i + 2, 21)に行数を表示し、それをpとして、 成績順を示したいと思ったのですが、実行すると(i + 2, 21)が0と表示されてしまい、 成績順も表示されません。 (#なお、変数はすべて宣言しています)
523 :
デフォルトの名無しさん :2013/05/20(月) 02:43:08.75
>>522 コードが間違っているのかなぁとは思うけどそれがどうかしたのかな?
> それをpとして って書いてるけど、プログラムはそうなってない
526 :
522 :2013/05/20(月) 17:05:14.33
P=Cells(i + 2, 21) にしたら、Cells(i + 2, 21の数字が0になることはなくなりましたが、依然として順位に反映されません。
527 :
522 :2013/05/20(月) 17:10:33.60
>>527 何が根本的なのかわからんが、クラス別に順位を付けたいならクラス別RangeでRankを使えばよろしい。
全クラス通してなら、全クラスRangeでRankを使えばよろしい。
めんどくさいから、個人情報とかを書き換えたBookうpして
>>529 何が面倒なんだろ?
単に一つのシートに複数のクラスの成績順を付けたいがどうしたらいいかと質問しているだけ。
質問者はどうすればいいか聞いてるだけで、コードを書けと言っている訳じゃない。
>>530 要領を得ないやり取りが面倒。
> 質問者はどうすればいいか聞いてるだけ
じゃ、お前が答えろ。
532 :
530 :2013/05/20(月) 17:47:23.02
>>531 俺は
>>528 と同意見だからあえてレスしてないだけなんだが。
ってかさ仕様あってのコードでしょ。
仕様のやり取りなんだから、まずは言葉のやり取りでしょ。
俺仕様のコードを書かれても大きなお世話だと思うが。
俺、
>>528 =
>>529 なんだが。
>>528 じゃ納得しないのをみこしての
>>529 。
> 仕様のやり取りなんだから、まずは言葉のやり取りでしょ。
説明下手なのは、
>>522 ,526,527を見てもあきらか。
ぐだぐだなやり取りで要求仕様を引き出したいならどうぞ。
534 :
530 :2013/05/20(月) 18:05:16.96
>>533 >>528 じゃ納得しないという判断は早すぎでしょ。
ある意味、質問者をバカにしているとも受け取れる。
536 :
デフォルトの名無しさん :2013/05/20(月) 18:13:16.57
めんどうなら勝手に黙ってりゃいいのに このスレの回答者ってすぐ増長するよな VBAしかできない分際で
ID欲しいね
変にブチ切れるやつとかいるし。
IDまじで欲しいわ
540 :
522 :2013/05/20(月) 19:39:36.12
>>527 に関してなんですが
>何が根本的なのかわからんが、クラス別に順位を付けたいならクラス別RangeでRankを使えばよろしい。
>全クラス通してなら、全クラスRangeでRankを使えばよろしい。
とのご指摘ですが、その都度、クラスの人数が変わる設定なんです。
つまり今回はA組(8人) B組(9人) c組(11人) なんですが、次の週は
A組(7人) B組(11人) c組(15人) と変わってしまうんです。
で、組数もM組くらいまであります。
ですからVBAを組んで簡素化したいと考えております。
>>522 >>526 でCells(i + 2, 21)を使って for nextを使おうとしたのもそういうところからです。
>>540 成績表は1シート内に縦に連続してるんだろ?
であれば各ループ変数は各成績表の先頭行からスタートするように調整しないとダメだよね?
あと1文字変数やめよう、il10oとか嫌がらせにしかならん
もうちょっと何をやりたいのか解りやすく説明してもらえれば
つべこべ言わないでBookうpしろ
545 :
デフォルトの名無しさん :2013/05/20(月) 21:45:33.64
Bookうpを阻止させようとしてる奴なんなの? Bbok見ればデータの位置とかすぐわかるじゃん
547 :
デフォルトの名無しさん :2013/05/20(月) 21:55:32.87
>>546 Bbokてなーにー?おーん?
言い方が気に入らない。もしよろしければアップロードしていただけませんでしょうか。
というものの言い方をするのが常識ある応対というものだ。
秘書検定2級の俺の前ではお前は完全に無能であるし黙るべきである。
またこいつか
>>522 Cellsの指定おかしくない? もしくは「行」と「列」を間違ってない?
>If Left(Cells(i, 1), 2) = "20" Then
これだと1列目を上から下に調べて、左から2文字が"20"かどうかを判定することになると思うんだが・・・
Cells は Cells(行番号, 列番号) と指定するんだけど、認識合ってる?
「一行目に「20**年」と表示されている成績表」っていうと、
左から 2000年 2001年 2002年 2003年・・・
っていう表が思い浮かぶんだけど、実際はどっち?
550 :
516 :2013/05/20(月) 23:15:21.18
>>517 回答ありがとうございます。安心して使用することが出来ます。
551 :
522 :2013/05/21(火) 00:13:39.36
http://www1.axfc.net/uploader/so/2909393 競馬のファイルです。
(なおこれは、競馬ソフトからHTML化してダウンロードしたあと、WEBクエリで取り込みました)
やりたいこと→自分で作った指数を順位付けして、馬名の隣のセルにのせたい。(※L列のような順位付をしたい)
やったこと →
1・1行目の発走時刻を削除して、頭数のみを別セル(数字に関係ない調教師列の真上)にコピー。
2・枠番のBは削除した。
【質問させていただいた点】
各レース、出走頭数が違うし、順位付けも各レースごとにしなければならないので、
その点をどうすればいいかわからない。
以上です。
552 :
522 :2013/05/21(火) 00:25:21.60
553 :
桃白白 ◆9Jro6YFwm650 :2013/05/21(火) 04:59:35.91
うpしろってやつは結局コードが書きたいだけだろ。 他人の楽しみを奪って楽しいのか? 質問者が急いでいるわけでもないし。
555 :
桃白白 ◆9Jro6YFwm650 :2013/05/21(火) 06:02:07.65
>>554 せっかくの掲示板なんだしさ、俺ならこう書く、うちはこうやとか
みんなで楽しくわいわいがやがや意見出し合ったらいいじゃん。
プログラムについて議論するときにはコードを書くことが
考えを伝える一番の方法だよ。グーグルのラリーペイジさんも
言ってたよそんなことを、むかし、たぶん、知らないけどさ。
>>555 質問する人間はコードの議論なんてどうでもいいと思うけど。
Excel VBAでやりたいことができないから質問するだけ。
そこにコードなんて言うニンジンぶら下げられたらたいていは飛びつくだろ。
結局質問スレであって議論するスレじゃないから議論なんてそっちのけになる。
今回も「できました!ありがとうございます」しかレスは来ないと思う。
557 :
522 :2013/05/21(火) 06:27:55.18
>>553 ありがとうございます。帰宅したら拝見します。
>>554 いえいえ、、、大変助かってます。
自分でコード書かなきゃと思いつつどうしたらいいかわからなくて苦悩してました。
競馬は今週大きなレースがあるのですが、それもそっちのけでずっとエクセルをいじってます。
558 :
522 :2013/05/21(火) 06:30:29.37
>>556 競馬のプログラミングは奥が深いので自分で考えなければならないと思います。
今、競馬はJRAから20年近くの全データが提供されており、分析方法に磨きをかけたいと思ってる矢先でまだまだ赤ちゃん状態です。
コードをいただいただけでは解決にならないので、よく勉強して、前に進みたいです。
結局コードの議論なんてどうでもいいってことか。
560 :
桃白白 ◆9Jro6YFwm650 :2013/05/21(火) 07:58:49.92
>>559 いや、いまんところ回答したの桃白白だけじゃん。
うじうじ言っていじけてるだけだったらちんちん腐って死ぬよ。
ちんちん腐って死にたくないでしょ?桃白白に先を越されて大敗北して
悔しい思いしてるのはわかるけど、議論したいんならなんか技術的な回答しなよ。
いまのあんたはちんちん腐らせてるだけだよ。粘菌を培養して一丁前に研究者気取ってる
つもりなのかも知れないけれども、放っとくと腐ったちんちんが本体になるよ。なりかけてるよ。
>>560 いやいや質問者はコードを書けって言ってないし。
あとは勉強するっていうんだからこれ以降レスする必要はないだろ。
なんか勘違いしてないか?
ここはあくまで質問スレであって議論スレじゃない。
議論したいのなら別スレ立てればいいじゃん。
しかも質問者からコードもらっただけでは解決にならないと言われちゃってるし。
>>562 議論してるのはお前じゃん。このスレのありかたについての議論。
> いやいや質問者はコードを書けって言ってないし。
書いてもいいだろ。
> ここはあくまで質問スレであって議論スレじゃない。
> 議論したいのなら別スレ立てればいいじゃん。
お前が言うな。
>>551 > 各レース、出走頭数が違うし、順位付けも各レースごとにしなければならないので、
> その点をどうすればいいかわからない。
その点がどの点なのかいまいちわからないが、20xx年のセルを見つけたら、
cell.currentregion.rows.countで「そのセルを選択してctrl+shift+*した範囲(それがcurrentregion)の行数」がわかる。
例えば、range("A1")なら20。
ヘッダ部分が4行あるので、出走頭数=range("A1").currentregion.rows.count - 4 = 16
>>556 > 今回も「できました!ありがとうございます」しかレスは来ないと思う。
それでいいだろ
566 :
デフォルトの名無しさん :2013/05/21(火) 18:43:55.48
質問者や桃白白を責める事はできないでしょ。 質問者は「お前の言ってることがよくわかんないからBOOKUPしろ」って言われたからUPしたわけだし、 桃白白は個人的にコード書いただけ。誰からも頼まれてない。 これで両者がお咎めうけるなら掲示板に何も書くなということになる。
>>563 >>565 スレの流れを理解してレスしてくれ。
話がややこしくなるだけ。
>>566 質問者を責めてるやついるのか?
>>555 のレスがなければパイパンは個人的にコードは書いたっていうのはわかる。
けど質問者の希望する目的とは違うでしょ。
更にいうと、コードをアップしたことで何が解決したのかな?
パイパン目線だとコードの議論はできてない。
質問者目線だとコードの提示は助かるけど解決になっていない。
結局何も解決できてない。
>>567 いい加減にしろよ。
世界はお前の思い通りには動かないんだよ
>>567 仮に何も解決できてないとして、それがどうした?
お前に何か関係があるのか?
回答もせずコードも書かずにぐちゃぐちゃ言うな。
>>567 > パイパン目線だとコードの議論はできてない。
いつからこのスレにいるのか知らないが、今回はたまたま議論にならなかっただけで、
桃白白がコード書くとそれを肴にプチ盛り上がりしたりする。
桃白白がコードを書くのが気に入らないのか?
俺はコードを書く奴は無条件に認めるけどね。その意味ではuyも認めている。
あとさー、他人を批判するなら名前くらいちゃんと書けよ。
柳沢さんちーす
win7+excel2010 ワークブックにシートが2つあり、シート1がリスト、シート2が請求書雛形です。 シート2のA列の特定のセルに数値を入力したら、シート1のA列で該当する数値の行のデータを それぞれシート2のB列、C列、D列に格納したいのですが、可能ですか? 可能であれば、それを実現する方法の名称を教えてください、後はぐぐりますんで。。。
>>573 可能。
keyword:
* Worksheet_SelectionChange
* range.find
間違った。 ×Worksheet_SelectionChange ○Worksheet_Change
576 :
573 :2013/05/23(木) 16:50:48.25
ありがとうござます、ぐぐって格闘中です
>>576 ここVBAスレだけど、その程度ならVBA使わんでも出来ると思うんだが
いや、あえてVBAでやりたいならとめはしないが、lookup系の関数調べた方がいいんじゃね
VBAでやった方が簡単な気がするのは俺だけ?
579 :
桃白白 ◆9Jro6YFwm650 :2013/05/23(木) 18:37:57.08
>>578 ケースバイケースだ。この言葉便利だよ、使っていいよ。☆(ゝω・)vキャピ
このケースだとUndo効かなくなって使いづらいよ
vlookup, offset, indirect, address, search, find, matchあたりを使って実現出来なければマクロだなあ
>>577 だね。lookup使わなくてもシート2のB列、C列、D列に「=Sheet1!A行番号」とか指定すればできそうな気がする。
OFFSETとかINDIRECTとか、ブックオープン時に再計算する関数を多用するならVBAの方が良いかも 請求データを継ぎ足しして継続利用するなら、関数の管理も必要になってくるのでVBAの方が後々楽かもしれない
Unko
前の職場でVBAなしで同じようなの作った sheet1の各行に、請求書番号|データ、を用意 sheet2の任意のセルに必要な請求書番号を入力 sheet2の金額等のセルが、vlookupで請求書番号をキーにしてsheet1のデータを参照 おわり 関数の書き方は忘れた
586 :
573 :2013/05/24(金) 13:07:49.81
みなさんありがとうございます しかしながらチンプンカンプンにてエクセルの本を買って来たところです
587 :
573 :2013/05/24(金) 13:30:48.27
できた!!VBA使わずともlookup関数で出来ました!! みなさんありがとうございます、涙でモニターを正視できません、この御恩は一生忘れません!
自分で解決したときに得られるものと、他人から答えをもらって解決したときに得られるものって雲泥の差があるよな。
589 :
デフォルトの名無しさん :2013/05/24(金) 19:30:31.30
気のせいだよ
1000
>>587 lookup?vloockupじゃなくて?
俺の勘によると、絶対にvloockupではないと断言できる
594 :
デフォルトの名無しさん :2013/05/24(金) 23:36:55.39
一番最初にvlookupを思い出した
"うんこちんこまんこ" この文字列に"ちんこ"が含まれてるか調べてtrue/falseを返すにはどうすればいいか教えてくだしあ
自己解決しました InStr関数を使うしかないようですね
使う「しかない」なんて言われるとそれは違うって言いたくなる…
実際違うしね
VBA初心者ですが Sub Sample01() Sheet2.Select End Sub で Sheet2 の 2 を変数に指定するにはどうすれば良いのでしょうか? Sub Sample01() Dim 変数No Dim シートno As Worksheet 変数No = 2 Set シートno = "Sheet" & 変数NO シートno.Select End Sub あてずっぽでこんな感じで書いてみましたが 色々変えてみても必ずエラーが出てうまくいきません、、 宜しくお願い致します。
死ね
Dim 変数No Dim シートno As Worksheet 変数No = 2 Set シートno = Sheets("Sheet" & 変数NO)
自己顕示欲マンセー
死ね
個人だとコーディング規約とかないから変数名は適当でさ、最初は漢字とか使っていくんだけどさ、だんだんさ、日を跨いだりしたらさ、だんだんさ、気づいたらアルファベットオンリーになってるね。俺。だからなに。
そういやお前ら今でもハンガリアン記法使ってますか
Dim 行 Dim 列
どんな風に使えば他人にも解りやすくなるのかが解らない
609 :
桃白白 ◆9Jro6YFwm650 :2013/05/25(土) 23:45:36.16
>>606 桃白白、ハンガリアン使ったことない。あれVB Ver.3くらいのときの遺物じゃないの?
昔はブーリン型がなかったらしいからハンガリアンでなんとかしてたとかなんじゃないの?
知らないけどさ、ハンガリアンが現代に必要のないものであることはたしかだよ。
>>599 >>603 Sheet2 と Sheets("Sheet2") は同じシートで無い可能性もあるのだが・・・理解しているのかな?
>>609 でもVBAが現代の言語かというと微妙だし
暗黙の型変換も避けられないし
ハンガリアンが有効なこともあるんじゃない?
613 :
桃白白 ◆9Jro6YFwm650 :2013/05/26(日) 09:28:58.68
最近はハンガリアンだったりそうじゃなかったりでかなりカオスな状態のコーディングしてるな インテリセンスあったら、たとえばtxtまで打てばテキストボックスの一覧が出る ハンガリアン記法はなぜ否定されたのか...
真のハンガリアンではなかったから 今では全ガリアンが主流
そろそろガリガリ君が量産されて店頭に並び始める季節だぜ
ハンガリアンは名前がかぶらないから安直に命名できちゃう
618 :
522 :2013/05/27(月) 04:34:44.15
http://www1.axfc.net/uploader/so/2916046 コードを書いてもらったのに、解決まで至りませんでした・・・。とても勉強にはなりました。
もう一回整理しなおしてみました。
現状
・能力値はすでに入力できる
やりたいこと(BOOKにある最初のレース)
・能力値順を各レースずつ記入したい(昇順です)
・能力値順が1の馬に◎ 2の馬に○ 3の馬に▲。
能力値順4以降は「出走馬/4個」(小数点以下切上げ)の数に△を振り分けたい
アップしたBOOKの最初のレースに記入したような状態に、全レース持って行きたいです。
ご助言お願いします。
>>618 能力値はコードで入力できているのなら
・能力値順を各レースずつ記入したい(昇順です)
の昇順以外はできてるんじゃないの?
昇順だけの問題ならマクロの記録を使ってみればいいと思う。
というより一気に全てのレースに対して処理をするというより
まずは一つのレース(リスト一番上のレース)に対してだけ
処理ができたら全レースを考えればいい。
まずは1レース分の課題をクリアしてみては?
・能力値順を記入(昇順です)
・能力値順が1の馬に◎ 2の馬に○ 3の馬に▲。
助言でいいんだな? 1レース分の処理はメソッドにする 引数は開始行インデックス 戻り値は終了行インデックス UsedRangeの最終行まで回しつつ2013が見つかれば1レース分の処理を開始
>>620 >1レース分の処理はメソッドにする
ん?プロシージャじゃなくて?
メソッドにするということはクラスモジュールが必要だけど。
622 :
522 :2013/05/27(月) 11:33:29.35
>>619 頭数の部分で行き詰まってしまいます。
(各レース頭数が違う)
>>620 桃白白さんがしてくださってように、コードでの解説でもとてもうれしいです。
>>622 コードの解説じゃないだろ。
コードがほしいなら別スレ行けよ。
>>622 これ見て意味がわからなかったらあきらめろ。
Sub ranking()
Dim maxRow As Long
maxRow = Range("A65536").End(xlUp).Row
Dim r As Range
Dim i As Long
For i = 1 To maxRow
If Cells(i, 1).Value Like "20##年*" Then
myRank Cells(i, 1).CurrentRegion
End If
Next
End Sub
Sub myRank(r As Range)
Debug.Print r.Cells(1, 1).Value
Debug.Print r.Address
Debug.Print "頭数=" & r.Rows.Count - 4
End Sub
625 :
619 :2013/05/27(月) 20:08:40.49
>>622 各レース頭数が違うのはわかるけど、それは次の段階で考えればいい。
一番上のレースのみ(頭数固定)で能力値を昇順にして、能力値のマークを付けることができてるの?
一つのレースができれば、あとは繰り返し(ちょっと工夫する必要あるけど)だからまずはそこからなんだけど。
白桃はVBAコード作成依頼受け付け用のアドレス公開しちゃえよ テンプレに貼っておけばいい コードコジキはこちらにメールしてください とな
627 :
522 :2013/05/27(月) 23:41:15.30
>>625 >一番上のレースのみ(頭数固定)で能力値を昇順にして、
これはできます。各種HPなどみましたので・・・
>能力値のマークを付けることができてるの?
やり方は稚拙ですが、if関数を使ってなんとかできます・・・が汚いコードになります
628 :
625 :2013/05/27(月) 23:55:48.93
>>626 お前はパイパンをNG登録しとけ
いちいちうるさいわ
630 :
桃白白 ◆9Jro6YFwm650 :2013/05/28(火) 04:52:53.28
631 :
デフォルトの名無しさん :2013/05/28(火) 05:13:01.26
634 :
522 :2013/05/28(火) 16:50:39.17
なんとかできそうなんですが、自作の汚いコード(強引なif関数連発)のままでいいのか、 桃白白か書いてくださったような、Function関数や配列をビッシリ使えるよう成長したほうがいいのか… 困ってます。
どっちもどっちかなあ コードの流儀なんて人の数だけあるようなもんだし
関数の粒度は
>>553 くらいがいいと思うが、今回の桃白白のコードはできが悪いぞ。
638 :
522 :2013/05/28(火) 17:52:49.12
>>635-637 >>618 で質問したことに関しては皆様のアドバイスで、なんとかクリアしました。
方向性はホント悩んでます
>>637 どのへんがよくないですか?
桃白白さんのコード見て、感心したし、自分で解釈するにも時間かかってこれはレベル高いなあと思いました
>>638 桃白白には悪いけど、レベル低いよ。
解釈に時間がかかったのは、VBAスキルがいまいちなのに加えて、桃白白のコードがひどかったから。
>>624 みたいに、1レース分のrangeを引数にして、その中でランク付けするのが良い。
>>624 の関数名はいまいちだが、構成は良い。
というか、range知らないのか?
フォームをモードレスで表示したあとに、シートをクリックしたり数式バーをクリックしてフォーカスが移動し フォームが非アクティブになったときに非表示にしたいのですが適切なイベントが見あたりません フォームの非アクティブを検出できるイベントがあればおしえてください 対象OSはXP以降、Excelは2003以降です(レガシーな環境は考慮しません)
>>638 おれも見て吹いたし
>>638 に難しいと思わせてしまったのは良くないね
かといってrangeを使えって指摘もどうなのよとは思うけどね
>>642 Range使わないってことはベタな感じになると思うけど、どうなんでしょ。
Excel VBAに限ってだけどベタなコードは、変にプロパティやメソッドに頼らない分
バージョンが変わっても使えるから個人的には好きだけどね。
パイパンのコードを見る限り
「ツールなんだからやっつけでいいじゃん。動けばいいんでしょ。質問者の意向は俺に関係ないし。」
という考えが見え隠れするんだよね。
で、そのやっつけのコードだと知らずに質問者は鵜呑みにしてパイパンのコードを正しいと思って
「できました!ありがとうございます」というやり取りになるのが見ていて痛々しい。
少なくてもパイパン本人が「捨てコードだからこのコードを正しいと思わないでほしい」っていう断り書きが
あったりするのならともかく、捨てコードなのに本人が
「会心の作」
とか言っちゃってるのがアレなんだよな。
>>643 自分で何も解決せずに人の回答にケチだけ付けるのが見ていて痛々しい。
>>644 質問者が何を問題にしているのか判明する前にパイパンが答えを書いて結局何が問題だったのか
分からないまま終わっているというのが現状だな。
>>643 関数の入出力は必要最低限のインターフェースを持った型にすべきでRangeは進んで使う型じゃ無いと思う
例えばソート処理の引数であれば求められる要件は値の集合かつ順序を持つ事でそれを満たす型は配列というような感じで
だから前置きなくRangeを勧めた事に違和感を感じてしまった次第です
647 :
桃白白 ◆9Jro6YFwm650 :2013/05/28(火) 23:45:45.98
>>646 ソートの引数にrangeを渡せと言ってるんじゃないよ。
1レース分のランク付けをする関数にrangeを渡せと言ってる。
そうすれば、その関数はもとデータの位置に関わらずcells(1,1)から参照できるし。
>>647 ごめんな、俺お前のこと認めてるけど、今回はダメ。
650 :
デフォルトの名無しさん :2013/05/28(火) 23:52:47.58
質問者が
>>618 ができたとは到底思えない。
今頃パニくってるだろw
651 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 01:49:59.70
みんな、さんざん桃白白のコードがダメとかRange使えばいいとか言ってたけど、 机上の空論だよね、それでできるんだーとうそぶいて終わるの? 桃白白そろそろコード書いちゃおうかと思ってるんだけど、それでいいの? また敗北したいの?
参加したいけど家にExcel無いんだ
653 :
デフォルトの名無しさん :2013/05/30(木) 02:22:38.55
>>618 のダウソ期限があと5分な件 よって桃の敗北w
654 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 02:31:20.22
>>653 桃白白はもうダウンロードしたよ。心配いらないよ。
>>652 会社にはあるの?じゃあ会社から書き込んだらいいよといったら
まるで桃白白が職務怠慢を推奨してるかのように見えるし、
桃白白は決して
>>652 に仕事をサボって欲しいとは思ってないからそうする
べきだなんて口が裂けてもいえないけど、仕事中にやればいいよ(*^ー゚)b グッジョブ!!
誰よりもコードを早く出せば勝ちなんて思ってるからこうなるw
656 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 07:43:40.95
>>655 |ヽ∧_
ゝ __\
||´・ω・`| > やめなよ
/  ̄ ̄ 、ヽ _______
└二⊃ |∪=| |─── /
ヽ⊃ー/ノ  ̄ ̄ ̄ ̄ ̄
 ̄`´ ̄
657 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 07:46:52.82
/ ̄\ | | \_/ ノ L__|__ ⌒:::\:::::/::\ / <●>::::<●>\ ← クラウド / (__人__) \ | |::::::| | \ l;;;;;;l /l!| / `ー' \ |i 桃白白のコードを見て感心したという質問者の自然な感情まで / ヽ !l ヽi 否定することないでしょうが!どう考えても桃白白がかわいそうでしょうが! ( 丶- 、 しE | ドンッ! `ー、_ノ ∑ l、E ノ > レY^V^ヽ
>>657 何で糞コードになったのかっていう反省がないのか。
挙句の果てには質問者を出汁にして自分を正当化しようとしてるし。
これじゃまともなコード書けないというのもよくわかる。
> 桃白白 やりたくなかったんだけど、サービスで駄目出しするわ。 まず、test()が入り口でランク付け関数がFillRank()だけど、FillRank()にCOMPARE_COLUMNを渡しているということは、FillRank()のクライアントコードがFillRank()の内部仕様を知らなければならないということだ。test()は、どうやってランク付けをするのか知らなくて良い。 次にGetRaces()。これもいろいろ酷いんだが、一番駄目なのはぱっと見何を返しているのかわからないところ。コメント書け。 PushArray()。引き数名が良くない。せめて(ary, val)とか(haystack, val)とか、配列と値が引数であることがわかるようにしろ。 Sort()。lowとhighって何だ? Swap()。宣言だけ見て、配列aのインデックスxとインデックスyの内容をswapすると誰が想像するだろうか。 それから、ランク付けのロジックがどこにあるのかぱっと見わからない。カプセル化しろ。そのロジックをそのメソッドの外に漏らすな。 ExcelなんだからRnage使え。CurrentRegion使え。Rows.Countとか使え。 これらの関数を標準モジュールやクラスモジュールに持って行くと、全体にわたって変更が必要になるぞ。Rangeを使っておけば、もともとリロケータブルだ。
660 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 11:01:31.11
>>658 黙れ糞野郎。
>>659 >コメント書け。
いやだ、コメントが必要なほど複雑なことをやってるつもりはない。桃白白はコメントを書かない。
>配列と値が引数であることがわかるようにしろ。
関数の名前がPushArrayなんだから配列に対して値をPushするのは明白だ。
>lowとhighって何だ?
lowerIndexとhigherIndexだ、見ての通りだ。
>ランク付けのロジックがどこにあるのかぱっと見わからない。
FillRankだ、嘘付け、すぐわかる。
>ExcelなんだからRnage使え。
コードが複雑になるだけだ。ExcelだからRangeだなんてそんな思い込みは捨てちまいな。
>>659 カプセル化しろと言った直後に
> ExcelなんだからRnage使え。CurrentRegion使え。Rows.Countとか使え。
これはないわ
お前が何も分かってない事が良く分かる
662 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 11:12:20.23
>>659 >配列aのインデックスxとインデックスyの内容をswapすると誰が想像するだろうか。
開発者が想像する。引数が3つだから、aのxとaのyを交換するだろーなー。
ダメ出しするならするでちゃんとやってくれない?
お前の実力が足りてないだけなんじゃないかと思えてきた。
663 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 11:12:51.19
>>660 お前もリーダブルコード読め。(ム板の話題)
>>661 場所を特定するためのシート名やセルのアドレス、行番号なんかを引数に渡すより、Excelのオブジェクトをやり取りした方が良い。
また、そのことと、ランキングアルゴリズムをカプセル化しろということは別問題だ。
あ、ム板じゃなくてマ板だったわ。
>>662 > 開発者が想像する。引数が3つだから、aのxとaのyを交換するだろーなー。
ほんと今回は酷すぎて、これまでお前を擁護してきたのが間違いだったのかと思うレベルだぞ。
x, yって何だよ。インデックスならi, j使え。
コメントが不要なほど明確なコードを書けてるつもりだったのか。
668 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 11:50:29.95
>>664 お前が読め。桃白白は実力でいうなら書く側だ。
>>666 aと(xとy)がアルファベット上で離れていることが重要なんだ。
あーxとyはaと完全に別物ですわーとわかるでしょうが。iとjだったら
aとそんな離れてないからどれとどれを交換するのかわかりませんわーとなるでしょうが。
桃白白のコードはよくよく考えて作られているんだ。お前が言ってるのは机上の空論だ。
669 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 11:56:27.84
>>667 コードを読もうとしないやつが桃白白のコードを見ることは想定していない。
>>668 お前はちゃんと動くコードを書く奴だし、批判にも耳を傾ける姿勢があるように思えたから、今までは
結構お前の擁護コメントを書いてきたが、それは俺の間違いだったようだ。
ひょっとしたら、今回コードが酷いと言ってるのが俺一人だと思ってるかも知れないが、俺以外にも
酷いというコメントいっぱいついてるぞ。
もうお前には関わらないことにする。
>>659 何言っても無駄だと思うよ。
所詮他人のアドバイスを受け入れる=負けとか、俺様が一番とか
くだらない考え持ってるんだろうから。
いくらアドバイスしたところで聞きやしないよ。
しかもこういうやり取りがプチ盛り上がりとか言っちゃってるわけだからたちが悪い。
>>664 読んだだけじゃ身につかないぞ、言葉を覚えただけじゃ理解じゃない。
お前はまだ言葉を覚えただけだ、まずカプセル化から勉強すれば。
>>661 俺は
>>659 じゃないけどRange、CurrentRegion、Rows.Countを使うのは良いと思う。
しかもRangeプロパティのSortメソッド使えばパイパンの書いたSort、Swapとかいらなくなるし。
ってかもともとExcelにソートの機能があるのに態々コーディングしてるのがアレなんだが。
あえてソート機能のプロシージャを書く理由とかコメントされていてもいいわけだが、そういうコメントがない。
>>666 こういうところに一文字変数をよしとする弊害が出てくる。
675 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 12:46:13.66
変にぼけてて、手前にピントが合ってる。
677 :
659 :2013/05/30(木) 12:54:52.65
もう俺がお前のために時間を使ってアドバイスすることは無いから。 じゃあね。
>>672 に同意
おれでもRange使うけどカプセル化は違うな
パイパンの自己評価って、リーダブルコードを書くレベルだったのかw
680 :
659 :2013/05/30(木) 13:09:11.43
自己叙述的で意図が明確な構造とネーミングを行えばコメント不要なのはその通りだが、 そのようなコードだと勘違いしてコメントを書かないと第三者が見ると意味不明なものになる。
682 :
デフォルトの名無しさん :2013/05/30(木) 13:18:59.56
>>618 のコードを書くのはやめたのか?汚名挽回のチャンスだぞ?w
これでRange使ったコード書いてきたらもうダメでしょ。
やっぱパイパンが来ると盛り上がるわw
685 :
659 :2013/05/30(木) 13:28:41.98
>>682 ひょっとして俺にコード書いてみろって言ってるのか?
>>680 イイね!
間違いを認められる人って少ないからさ
687 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 13:31:30.74
>>685 そうだと思うよ。ついでに気が向いたときに桃白白に返信したらいいと思うよ。
桃白白うさぎさんだからさ。
桃白白はきちんと汚名挽回してるからなw
汚名挽回がネタなのか天然なのかわからんわw
白桃がコードをあげるたびにレスが進むけど、ここは回答者のソースのレビュースレでいいのか? ソースレビューにしても質問者による提示以外はいらなくないか。どうなん 基本は自然言語での進行が望ましいと思うのだけど。
692 :
659 :2013/05/30(木) 13:50:20.45
693 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 13:54:52.74
>>692 していいよ、桃白白全然かまわないよ、やってくれてかまわないよ。
気が向いたときでいいからやったらいいと思うよ。桃白白迷惑に思ったことないよ。
まあ、いちいち外部リンク開けなきゃ見れない量のコードのやり取りは、俺もどうかと思う。 コード書くにしても、1レスにおさまる程度にして欲しい。
>>690 賛成。
ソースレビューは質問者の提示したコードのみだね。
自然言語でのスレ進行で十分。
質問者がコード書けないなら書けないで、それは質問者の問題。
わざわざ回答者が変わって書く必要ない。
回答者が書く必要もないし、書くのを禁止する必要もない
>>696 そういうこと言うからパイパンがつけあがるんだ。
桃太郎は頭の体操としてコードを書いてるんだと思うけど、そしてコードを書いた方が楽な場合が多いのも分かるんだけど、 このスレで、動くレベルのコードを出すのは違うと思うの。違和感。
白の4バイト文字用の左右が見つからない
みんな自分のしたいようにするだけ それは誰にも止められない それが真実
パイパンを嫌いな奴がNG指定しない理由がわからない わざわざ読むのは絡みたいからじゃないの? ぐだぐだ文句言わずにNG指定しろ あと、パイパンにレスする奴は安価つけろ
702 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 14:56:45.96
703 :
デフォルトの名無しさん :2013/05/30(木) 15:16:28.72
コード無き罵り合いw
Rangeに拒否反応を示す奴が多いが、データソースがワークシート上にあるのだから、Rangeで扱うのは自然なこと。
>>659 が言うように、そうすればデータの物理的位置と処理が分離できる。
今回のランキング処理のように、アルゴリズムだけを独立させたい場合は、ソースを配列などのスカラ型に変換して
取り扱うのもあり。ただしその場合は、処理結果をスカラ型を戻すべき。
初心者がやりがちなのは、一つの関数内で直接シートやセルを参照し、各種処理を実行し、セルを書き換えるという
構造。ただし、今抱えている問題が解決さえすれば良いのであればそれでも良い。おそらくそのコードは再利用しない
だろうから。
>>701 あえて言うならば、質問者がパイパンのコードを真に受けてほしくないためかな。
質問の書き込みがあって、いくつかやり取りをしようとする前にパイパンのコードの提示があって
それで質問者はOKしてしまう。
NGワード設定してたらそういうチェックできないし。
桃太郎がどうのこうのは現状そうなだけであって、根本的には動くレベルのコードを出すか出さないかであって。 とりあえず桃太郎は、今後しばらくコードを書いて上げたい欲求を少々自制してみてはいかがだろうか。
>>706 そんなのできてたらとっくにやってると思うけど。
708 :
デフォルトの名無しさん :2013/05/30(木) 15:58:40.94
これは桃白白が正論だろ。 コード1つ書いてもう一つ用意してて他の連中はコード書かないわ桃白白叩くわ、まるで戦いになっとらん。
もう救いようがない。
710 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 16:07:55.75
>>708 桃白白を応援してくれる人が現れるとは思いもよらず、
桃白白とてもうれしく、ありがたく、かたじけなく、清く、美しく、しなやかに・・・
>>708 > コード1つ書いてもう一つ用意してて
ちょっと意味がわかりません。
明確な意思の基コメントは書かないとするくせに、コードはやすやすと書いて提供しちゃう心理が理解できない。
713 :
桃白白 ◆9Jro6YFwm650 :2013/05/30(木) 16:40:20.19
>>634 マークつけるところはIfで分岐するしかないと思うよ。
連想配列使ってランクとマークの組み合わせ用意するのも
大仰に思えるし、多少汚く見えるのは仕方ない。
>>712 御本人の一連の発言から、ただ単に問題を解きたいだけの構ってちゃん、という印象を持ちました
>>714 普通のスレならスルーすればいいだけなんだけど、いかんせん質問スレで質問者に対するレスだから、
まずスルーされることはない。
それを見越して糞コード書いてるからマジで性質悪いんだよ。
自虐とかじゃなくて、マジで自分のコードが素晴らしいと思ってんのかなぁ?
717 :
デフォルトの名無しさん :2013/05/30(木) 18:22:28.82
桃白白がコード晒して勝利で終わりでいいよ。 負け犬は桃白白を叩くしかできないってこと。
>>717 コード晒せば勝利ってそんなルールは
>>1 に書いてない。
勝手に俺ルールを作るな。
悔しかったらそうじゃないことをコードで証明しろ
>>1 の☆5って結論はどうなったの?
質問者の丸投げ、回答者のコード提示、これらはOKになったの?NGのままなの?
どっちかに落ち着いたならこのての議論はなしにして、不満があるひとは、あまり言いたくないけど別スレたてればいいんじゃない?
コード派は白桃と無記名の白桃の計一人か、それとも白桃と白桃のコードを崇拝する信者か。 やたら白桃を称賛したり、傘を借りてるみたいだけど、コード出せとか煽っても・・
723 :
デフォルトの名無しさん :2013/05/30(木) 19:34:13.70
擁護してるんじゃなくてコード出さないなら叩くなってこと。 出して議論するならわかるけどさ。
>>723 質問スレであってコードを議論するスレじゃないんだが。
>>723 通勤とか暇潰しで見てるからコード上げろはキツイわ
指摘するのにコード上げる意味も分からん
正々堂々叩き合えと?w
2chでまで言い訳かよ、お前いつもそればっかだな。
コード出せないなら黙ってればいい。
黙れてないじゃん
729 :
デフォルトの名無しさん :2013/05/30(木) 20:46:08.27
>>724 じゃあ桃白白を叩かないで黙ってろ。
コードを書いたくらいで叩くんじゃない
矢面に立てないやつは桃のことを論じる資格そのものがないわ
>>727 なぜそこまでコードにこだわりたいのか?
コードだけに縛られたいんじゃね
根拠無く意見を述べるバカをNGにするマクロ教えてください
自分の書き込みが見えなくなることになるけどいいのか?
735 :
桃白白 ◆9Jro6YFwm650 :2013/05/31(金) 01:27:28.08
>>725 桃白白名案があるの。仕事中にやればいいと思うの。
叩き合うっていったらただの喧嘩じゃん。
やっぱりさ、こう、意見を出し合う者同士が互いに相手の意見を理解し合う
ようなそういう議論ができるのが理想だと思うんだよね。
桃白白のコードを頑なに否定するんじゃなくてさ、そういう書き方もあるよね、
こういう書き方するともっと簡単に書けるよとか、こうすればもっと高速に処理できるよとか
そういうふうに意見を出し合えば桃白白が傷つかずに済むでしょ。
桃白白がかわいいうさぎさんであることを忘れちゃいけないと思うの。
736 :
桃白白 ◆9Jro6YFwm650 :2013/05/31(金) 02:31:50.66
>>735 何でダメと言われているのか理解してないでしょ。
パイパンがオリジナルのコードを晒してどこを直せばいいですか?っていうあくまで質問者の立場なら全く問題ない。
質問の内容を利用したコードを書いた時点で回答者という立場になる。
質問スレだから質問者がOKという話をされれば、その時点でで話題は終了。
どうしてもコードの話題にしたいのであれば、質問者が最終的なコードをアップさせるように仕向ればいい。
質問スレなんだからあくまで質問者が話題の中心。
回答者のお前が話題の中心じゃない。
738 :
737 :2013/05/31(金) 06:24:56.59
>>735 追加
> やっぱりさ、こう、意見を出し合う者同士が互いに相手の意見を理解し合う
> ようなそういう議論ができるのが理想だと思うんだよね。
こんなこと言ってるけど、パイパンが相手の意見を理解しているように全く見えない。
何で
>>725 が通勤途中や暇つぶしで見ている環境なのか理解しようとしてない。
理解しているなら仕事中に見ればいいなんて言うわけがない。
しかも
>>725 を理解したうえでお前が何か妥協した点があるとは全く見受けられない。
簡単に言うと、お前のわがままを
>>725 に押し付けているしか見えない。
あえて言うとお前が
>>725 であれ、質問者であれ、お前に対するレスであれ
相手を理解しようとする心が芽生えない限り、この状況は全く変わらないと思う。
739 :
桃白白 ◆9Jro6YFwm650 :2013/05/31(金) 06:25:53.98
>>737 桃白白はきちんと質問者と向き合って質問に答えてるよ。
桃白白に放火して炎上させたのはみんなの方じゃん。
桃白白は火達磨になりながらもきちんと質問に答えたんだよ。
>>739 コードを見る限り、向き合っているように全く見えない。
質問者が理解できるような配慮なんてあの糞コードに全くないし。
コメントがないだけでも十分向き合ってない。
741 :
桃白白 ◆9Jro6YFwm650 :2013/05/31(金) 06:49:39.52
>>740 そうやって桃白白の悪口を言うことが桃白白が話題の中心になる原因だよ。
桃白白はただひたすら傷つくだけだし、質問者は置いてけぼりじゃん。
質問者が中心だって言ったんだから質問者に対して自分はこう思う、こう書くべきだとか述べるべきだよ。
>>713 でも、
>>736 でも桃白白はきちんと質問者に対して自分の考えを述べてるでしょ。
>>741 既に終わっている内容にレスしても質問者に向き合っているように全く見えないんだが。
ただレスを返しただけで質問者の意向をくみ取ってないでしょ。
743 :
桃白白 ◆9Jro6YFwm650 :2013/05/31(金) 07:15:15.15
>>742 そう思うんなら質問者の意向に沿った返信をすればいいと思うよ。
桃白白を火達磨にしても何も解決しないよ。
本当は優秀なんだけど口だけで仕事しないやつより ダメコードでも結果を出したやつが評価される世の中なんで みんな嘆いてるんですよ
>>743 いやいや、お前が変わらない限り何も解決しない。
ダメコードより結果を出せないコードしか書けない奴が優秀なんてことあるのか
パイパイのコードがイマイチなのは何も今に始まった話じゃなし それでもコード公開して回答する姿勢は評価するが 公開されてる掲示板に書いてるんだから、まっとうな批判はちゃんと受けろ 質問に答えて火達磨になったのは、その程度の回答しか出来なかったってことだ
>>659 の内容は、ごくまっとうなものじゃないか。
それに切れておいて、今後ともよろしくは無いわ。
749 :
桃白白 ◆9Jro6YFwm650 :2013/05/31(金) 11:52:50.83
>>748 そんなこと言われたって桃白白どうすりゃいいのさ・・・
>>749 悪口言われたとか放火されたとかいうスタンスがもう駄目。
単に「糞コード」と言ってる奴ですら、お前のコードを眺めて評価する時間を割いてるんだぞ。
まあ、コードも見ずに糞コードと言ってる奴もいるかもしれないが。
751 :
デフォルトの名無しさん :2013/05/31(金) 12:54:58.62
どう考えても桃白白叩きになってるじゃんwww
>>736 で
>>618 に対するコードを桃白白は表示した。
コードに対する指摘があるならすればよし、桃白白を無視したいならすればよし。
それをコードでもなく、無視でもなく、人格攻撃するとは、どういうことか。
こういうのを2chでは、「固定ハンドル叩き」といい、削除ガイドラインでも削除対象になるくらい、固く禁じられている。
と正論を言ってみるテスト
>>750 間違った事は言ってないからね
>>749 言われて気付いた事もあるだろうしポジティブに行こうぜ
>>751 発言態度を批判すると、人格攻撃になるのか?
だったらもう何も言えないな。無視しかできない。
ageてる奴下げて
ageてる奴は、パイパンのコードの質はどう評価してるんだ
756 :
デフォルトの名無しさん :2013/05/31(金) 14:41:29.98
専門板っていまだにageだsageって言ってるキチガイがいるのか
ageてるのはパイパイ
コードの質とかもういいっす、先に書いた奴が勝ちっすから。
>>758 コードに固執してるのに質は関係ないってことは、単に荒らしたいだけか。
>>759 ところでお前天然の方?悪意がある方?どっちのバカ?
>>751 コテハンならスレを荒らしても無罪放免って言いたいわけね。
無料匿名だけど迅速かつ非の打ち所のないコード提供をお約束いたします
>>756 実際の所、ageてる奴はお前とパイパンだけなんだがな
>>735 > 桃白白のコードを頑なに否定するんじゃなくてさ、そういう書き方もあるよね、
いや、ないから。
765 :
デフォルトの名無しさん :2013/05/31(金) 21:45:09.50
>いや、ないから。 なんだこりゃ こういうスレだったの?
この話はもうおしまい!
>>766 これで終わりになることはないと思う。
とりあえず様子見だな。
要はあれだろ?
ずっと
>>1 が複数の人を装って暴れてるんだろ?
結局
>>1 ★5を残した挙句の結果が、ずっとこのスレが荒れっぱなしと言う醜態を曝しただけだったな。
次回は確実に消しておかないと。
批判されるのが嫌ならコードを晒さないこと。 簡単ですね。
>>764 コードを評価するのもダメなスレだったのか。
>>768 そのかわりにコードの回答禁止と桃白白をNGワードに入れるルール追加だね。
>>769 だな。
コードがなければコードの批判なんてないわけだし。
お前らもうその辺にしとけ。 見てて気分悪いぞ。
なんで誰も模範解答を出さないの? 誰も書かないから俺が書くけど、他人のコードにケチつけるだけなのは人間のクズ 結果を出してから大きな口を叩けや
結果というのがなんのことかわからないが、コードに対するコメントを「ケチ」だと 思うのは多分君が職業プログラマじゃないからだよ。 まともなプログラマなら、無料でレビューしてくれることに感謝するはずだ。
そもそもプログラムやってるならおいそれとコードを出してやるなよと
そもそもお前のおままごとコードは誰も欲してないよと
>>774 コードの質は関係ないって言ってるやつにそんなこと言っても全く理解できないと思う。
コードレビューがあるからコードの質が上がるんだけどね。
プログラマってどういう人間なのか誤った認識してるんだと思う。
sub msgbox ("プログラマならコードで語れよ") end sub
つか、今回の質問も空行で区切られたデータ範囲を知るのと、大小比較だかソートだかを するだけの簡単な問題で、何も全コードを書くような話じゃなかったんだよね。
安易にコード(=結果)さえ書けばいいってもんじゃない。 コード(=結果)だけがプログラムのすべてではない。
781 :
デフォルトの名無しさん :2013/06/01(土) 01:12:37.95
今回は質問者が競馬のデータいじりというガッツリしたものを放り込んできてそれに桃白白が答えた。 残りの犬どもがそれにわんわん吠えたって展開だろw 質問者ナイスだわw
質問に対する回答がひどいから叩かれるだけの話 もういい加減この話題終わりにしろよ
783 :
デフォルトの名無しさん :2013/06/01(土) 02:49:00.90
>>782 は?桃白白が質問者に暴言吐いたか?
コードまで書いてあげた挙句、コードに関する質問には丁寧に答えてただろ。
お前らが仕掛けたくせによく言うわ
>>778 それ括弧の有無で意味違うから、括弧外すかCallつけるかどっちかにしな
とりあえずコードも出さずにケチ付けるだけの役立たずは黙ってろ
>>783 桃白白の態度や(コード出す)回答方法が悪いなんて言ってないぞ
回答してる中身が悪いから叩かれてるんだって言ってるんだ
ageてる奴は回答の程度が悪いのが理解できてないんだろうな
787 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 04:29:35.25
>>786 ロジックに瑕疵があった?どこ?具体的に指摘して、桃白白ちゃんと言ってくんないとわかんないから。
思ってるだけじゃ伝わんないから。あとになって後悔するだけだよ、あのときちゃんと伝えておけばよかったって。
あたしの思いちゃんと伝えておけばよかったって。後悔したくないでしょ?じゃあ言って。
>>774 >まともなプログラマなら、無料でレビューしてくれることに感謝するはずだ。
顔も実力も分からない評論家様が草野球の試合に踏み込んできてそうじゃねえだろと言って手本も示さずに感謝だけ要求する世界ですか?
いや草野球じゃなくてプロであったとしても感謝する人がいるかな
>>783 それで、コテハンのやつとコテハンじゃないやつがいるわけだ。
なんか言われたらこんな風に言い訳できるもんな。
>>788 指摘内容で実力はわかるでしょ。
2chでは、ほぼいつでも相手がどういう人だかわからない。みんな、その場その場の内容で判断してるんだよ。
791 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 05:53:55.92
お前が書き込む時間に限ってお前を擁護するような書き込みがあるのは俺の気のせいか?
>>792 気のせいじゃないよ。俺も全く同じことを思ってる。
同一人物なんだろうなぁと思ってたけど、
>>783 のレスで確信したよ。
>>793 同意です。まったくあなたのおっしゃるとおり。
>>788 謙虚な気持ちがないヤツがいいそうな例え方だな。
ってか相手が何でそういうことを言うのか理解しようとする前に、相手を否定。
やはりパイパンと全く同じwwwww
まあまあ、 話は全然関係ないけど、俺は自作PC板の住人でもあるんだが、 そこで~円で自作するスレみたいのがあって、自分の考えた構成を晒すんだけど それに文句がある奴は更に良いと思われる構成を貼って指摘、もしくは反論すると言う暗黙の掟がある。 要するに口だけ番長は誰も相手にしたくないということだろう。 このスレも人が書いたコードに文句を付ける際はそうすればいいんじゃないか?
対案示さず批判のみとは、まるでどこかの党か、あるいはお隣の国のようだ
自然言語で質問、自然言語で回答。 極論言うと、コードを出すならそういうスレを立ててそっちでやってくれ。 技術者同士でフォローし合うスレであって、コジキに恵むスレじゃない。 誘引する行為もよしとしない。ここにはそういう性質の人間が多いということ。 ベクトルの違うスレになるんだろうし、コードありきの人はスレたててみたらどう?
感謝するニダ(`_´)ゞ
双方のスレのテンプレに 「技術的な質問はこちら」 「コード作製依頼はこちら」 とリンクしあえばよりよい。
>>796 そりゃ自作PCなら全部取っ替えても10行で書けるが、手の施しようがないプログラムは全部書き換える
必要があって、今回みたいな場合は数十行必要になる。
で、それって全然別のコードを書いたことになって、元コードのどこがダメだったのかを示すことには
ならないというおまけ付き。
パイパンの場合は大抵全体の構造がまずダメなんで、こう書き直せという指摘がしづらい。
まあ、リーダブルコード読めと言われて、いや俺はそれを書くがわだとか言っちゃう 身の程知らずだから、もう何言っても駄目だと思うよ。 パイパンがコードをうpするのは止められないから、触らないようにするのが一番いいよ。
>>796 PC自作を晒すスレならそれはありなんだけど、このスレってコードを晒すスレじゃないんだけど。
このスレをコードコンテストスレとかコード自慢スレとかと思ってるようだけど、残念ながらこのスレは質問スレなんだ。
どうしてもコードコンテスト、コード自慢したいのなら別スレ立ててそっちでやってくれ。
>>624 程度のコードならいいけどね。
でも別スレ立てても人来ないと思うね。別に立ててもいいけど。
質問者が「桃白白」をNGワードに設定してくれればいいんだけど、 質問者全員が専ブラ使っている訳でもないだろうからなぁ。 結局のところコードを晒す本人の意識が変わらない限り解決は無いと。
もう一個のVBAスレでやればいいんじゃない?ほぼ死んでるようだし。 あのスレってここから分裂したんだっけ?
>>806 まさしくそうだけど、コード晒すやつを誘導しても言うこと聞かずにこっちにコードをうpするから意味ない。
クレクレ君がこのスレに書き込んだ時に、クレクレ君を誘導したとしてもすでに手遅れ。
マジで本人の意識改革しかないのだが。
>>780 が正鵠だと思うわ。
この流れ見て「コードクレクレすれば誰かが書いてくれる」って初心者が思っちゃったら、
質問スレじゃなくコードクレクレスレになっちまうだろ。
プログラマが自分で自分を貶めてどうする?
ましてや質問者が求めているのは助言であってコードじゃないだろ。
>>522 氏
自分で成長しようとする気持ちがあるなら、汚くても自分のコードを使った方がいい。
成功しようが失敗しようが自分の糧になるから。
誰もコードを上げなければ、質問者がお前の意見を採用してくれると思ったら大間違いだぞ。 初心者でもバカは分かるんだよw
>>805 まずお前が設定しろよこの桃白白大好き人間が
どうもよく分からないな。 ここって質問スレだよな。 質問に対して有効であればヒントだろうがコードだろうが構わないと思うんだが。 回答が間違ってるなら兎も角、合っているのに駄目出しする人は VBAを極めるスレでも立てればいいし、 ヒントじゃなければ駄目だと言う意見を押し付けるのであれば、問答スレでも立てればいい。 質問に対して回答するスタイルに何故拘る必要があるのか分からない。
812 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 11:13:31.77
やはり自演だったか
814 :
659 :2013/06/01(土) 11:58:27.25
>>811 なんで俺が
>>659 を書いたかというと、駄目だ駄目だと何人もに言われても桃白白は少しも
駄目かもしれないとは思ってなかった様子で、質問者は桃白白のコードが何か素晴らしいもの
だと思ってるようだったので、これはいかんとやりたくはなかったんだが具体的指摘をした
んだよ。
>>659 の冒頭にもやりたくなかったと書いてるでしょ。
なので、俺としては積極的にそのようなことをやりたいわけでもなく、このスレでは今後一切
そういうことはしない。
815 :
659 :2013/06/01(土) 12:04:21.37
ちなみに俺自身はVBAのことはかなり極めてるつもりだし、他人様のスキルを上げるのを 手伝おうなんて思ってない。
なんとなく神のGTOっぽさを醸し出す文体
卑 日 / ._ノ 怯 本 L_ _-‐──-) .在 .え 者 に / ./:::::::::::::::::::::ヽ .日. l だ い / _____ /:::::::::::::::::::::::::::::::i ニ マ け る l /..::::::::::::::::::::::::::::- _ ./::::;;;::'''``""'''''' 、く カ ジ ニ 朝 i . /:::::::::::::::::::::::::::::::::::::::::\ i::::::/ --─‐‐- 厶, !? ダ 鮮 l /:::::::/~ ̄ ̄ ̄~ヽ:::::::::::::::ヽ ゙l,゙/ ,-ー、 Ll /,ー--、.ヽ よ 人 _ゝ /::::/ \:::::::::::| i i._--\ /--゙` レ、⌒Y⌒ヽ ね は 「 |:::/ '⌒` '⌒ヽ |::::::::::| ( l -'"/ ヽ `ーー ゙`l ./´゙'l,:: -┐ ,√ ヽ| \ / |:::::::::| 〈 ( )、 > /'゙i,. j: レ'⌒ヽ/ . . /| _人__人ノ_ ヽヽ ノ`ー'` ヽ----/' j゙jノ./:: 人_,、ノL_,iノ! |,<___ < _ > _____「 L_ヽ 〃r─‐- 、ヽ / /'´ノ:::: / ヽ| ー─── ノ キ 了 \ヽ ヽ, -‐┤} } .ノr''゙ / ハ ウ { /\/!`h、⌒/ ) モ |/! 「ヽ, `ー /) _ ‐' ./ ..ッ ェ ヽ r-、 . // / |  ̄ ,く | > / / `'//-‐、 / ハ | > /\\// / /ヽ_ / ! イ ( / / // / `ァ-‐ ' / ..ッ ハ / /! ヽ レ'/ ノ ニ > ' ∠ -‐  ̄ノヽ / ハ ..ッ .... { i l ! / フ .ダ ./ -‐ / ̄/〉 〈 \
818 :
786 :2013/06/01(土) 13:45:08.97
>>787 ロジックが正しい上かどうかじゃなくてコードの質が悪いって言われてるんだよ
コードが悪いと言われてロジックに瑕疵があるとしか考えられないのなら
お前はもうコード公開するのやめとけ
>811
ヒントじゃなければ駄目だと言う意見を押し付ける人は俺も理解できん
だけど、質問でも回答でも、その書き込みの質が悪ければそれは叩かれても然るべき
今回は質が悪いと指摘してる人に、回答スタイルを押しつける人と人格攻撃したい人が乗っかってるから話がややこしくなってるだけ
質の悪い言い合いはもうやめてもらえませんかねえ
初心者ですが book ワークシート セル番地を今は1つづつアクティベートしていますが 複数のbookとシートを頻繁に指定する場合行数がどんどん増えて煩わしいのですが 3つをまとめて指定する方法は無いのでしょうか? また数値が書き込まれさえすればわざわざアクティブになってなくてもいいのですが 非アクティブで数値だけ指定した箇所へ瞬時に書き込まれる方法とか無いのでしょうか?
821 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 15:14:38.79
>>818 なんだロジックは間違ってないのね。じゃあいいです。
>>818 コードを許した時点でパイパンが湧いてくるからなぁ。
今後、第2第3のパイパンが湧いてくることも考えられるし。
妥当なのがコードの回答禁止じゃないかと。
他にいい方法ってあるのかな?
>>821 自分の都合のいいほうの意見だけ聞くな。
ロジックが変っていう意見のほうが多い。
>>821 ロジックがあってるとも間違ってるとも言ってないぞ
ロジック以前の問題だって言われてるんじゃないかな
825 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 15:47:56.48
>>824 桃白白が質問者に伝えたかったのは、桃白白が書くコードはこんなに質が
高いんですってことじゃなくてこういうロジックがあるよってことだったの。
コードの質っていうのもよくわかんないんだけど、コメントがどうとかそういう
ことでしょ?くだらないなって思うの、そういうの。議論してるときに本質と関係ない
句読点の指摘をしてくるおっさんの亜種だとしか思えないの。
だから、もしロジックに不備があるとしたらそれは傾聴に値するから
桃白白のかわいいお耳を傾けようと思ったんだけど、言わないんでしょ。じゃあいいです。
>>820 複数のブックとシートには全く同じ処理をするのかな?
全く同じ処理ということなら、ブック名、シート名を引数とするプロシージャを書けばできるかと。
メイン処理でそのプロシージャにブック名、シート名を指定してコールすればできると思う。
ブックがオープンさえしていればアクティベートしてなくても
Workbooks("ブック名").WorkSheets("シート名").Cells(行数,列数)
で値の参照、設定ができる。勿論対象のブックが書き込みができる設定になってるのが前提だけど。
常に上記の指定を書くとコードが横に長くなって見にくくなるからWithステートメントを使ったり、
シートオブジェクトをSheet型の変数に格納したりすれば可読性は上がると思う。
>>825 そもそも問題になって今更そういう説明をしなくてもいいようにコメントを書けと言われてるんだよね。
コードにコメントなし、レスのコメントも何もなし。
それでコードを見た人は何を受け取ればいいんだ?ってこと。
ようはコードの書き手の意向が伝わってこない。
お前は今言い訳してるけど、前のレスでコードを書いただけと言ってるわけだし
こういうロジックがあるよとかどうでもいいんでしょ。
後付けで理由つけるなよ。
ロジックが正しいかどうかが分かるまで読み進めた奴がどれだけいたか疑問で、まさにそれが問題なんだけど、 本人がいいというんだからこれで終わりだね。
要するに、まとまった量のコードを上げられても俺が理解出来んから気にいらん という事だな
>>829 もう、そういうかまってちゃんな発言止めなよ。
要するに、理解する気にならないような質の悪いコードをあげられても困る という事です
>>831 困るならどこが分からないのか素直に聞けばいいんだよ、質問スレなんだから。
それを、質が悪いだのレビューだの上から物を言うからスレが荒れるんだよ。
833 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 16:15:14.52
>>827 だからロジックはわかるでしょ。コード見ればどういう処理が行われるかわかるでしょ。
どういう実装方法があるか分かるでしょ。コメントがなければ何も分かりませんなんて人に答えたつもりはないよ。
コードを書いたのは桃白白だから、書き手の意向は桃白白の意向のことで、
桃白白の意向はこういうロジックがあるってことを示すこと。
だから、コメントがあるかどうかばかりを気にするお前にはそれが
伝わらなかったのかもしれないけれども、桃白白が示したかったのは
こんなにコメントがあるんですってことじゃないから問題ない。
>>832 内容がわからないと言ってた奴は一人もいないが。
見えない敵と戦うと疲れるぞ。
どんなに言い訳しても、酷いコードだという評価は覆りませんよ。
>>833 間違ってさえいなければ分かりにくくても問題ないと思うなら
他人が読むためのものを公開するのはやめておけ
これ以上いっても無駄だろうし俺はもうこれでこの件にはレスしない
パイパンがプログラマだと思うから腹立つんじゃないか? 相手は素人だ。可読性なんて求めすぎだよ。
>>833 > 桃白白の意向はこういうロジックがあるってことを示すこと。
そもそもそれが伝わってないし、伝えようとしてないでしょ。
一行のコメント入れられないくらい超難しいこととは思えない。
質がどうのこうのと言われて、あわてて言い訳しているようにしか見えない。
こういうやり取りをしているだけでも、その場しのぎの人間なんだなぁということを踏まえたうえでコードを見ると、
コメントなかったり、コードに一貫性がなかったり、一文字変数があったり・・・
動けばいいというその場しのぎのコードになっていて、コードは人となりを表すんだなぁと思ってみたり。
>>833 俺は変数名や関数名をきちんと分かり易く付けて可読性を高くして
コメントは出来る限り減らした方がいいとは考えるけど、
ここが質問スレだと考えれば、相手の知識レベルも分からないし、
コメント振ってあげた方がより親切だとは思うよ。
そういう意味で言うと、変数名や関数名なんか日本語で付けても良い位。
840 :
デフォルトの名無しさん :2013/06/01(土) 16:44:44.72
ここってひま人の集まりですか?
どのスレも忙しい人は書き込みなんかしないと思うが
まあ暇人な事は認める
843 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 16:59:26.23
>>843 質問者に自分の意図を伝えたいのであれば。
845 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 17:10:36.28
>>844 桃白白はコードで十分だと思ってるからコメントを入れないけど、
お前がそうするべきだと思ってるんなら、入れてくれても構わないよ。
>>736 Friendpasteは誰でも編集できるから。
>>845 まぁ、質問者に理解してもらいたい訳では無く、
自分がただ回答のコードを書きたいだけだと言うなら
それも有りだろう。
847 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 17:21:00.79
>>846 桃白白はコメントがなくても桃白白の意向が質問者に伝わると思ってる。
だからコメントを入れない。
お前はコメントがなければ桃白白の意向が質問者に伝わらないと思ってる。
だからコメントを入れるべきだと思ってる。じゃあ入れなよ。
848 :
820 :2013/06/01(土) 17:22:16.61
>>826 詳しくご説明頂きありがとうございます。
>Workbooks("ブック名").WorkSheets("シート名").Cells(行数,列数)
試して見ます。ありがとうございました。
>>847 俺はそれを分かるかどうかを判断するのは回答者では無く質問者だと思っている。
だから前もってコメントを書いておく。それだけ。
別に桃白白のやり方を否定するつもりはないよ。
>>845 ほんと何が問題なのか理解してないみたいだな。
コードを書いた本人じゃないと意向なんかわかるわけないだろ。
処理の概要程度なら読めばわかる。
処理の概要をコメントとして書けと言っている訳ではないってことも理解できないのかな。
いかにも頭の問題だな
852 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 17:42:47.47
>>850 書いた本人の意向もわからないのにコメント書けと言っていたのかと
桃白白ちょっと驚いてるんだけど、桃白白の意向は
>>833 に書いたとおりロジックを示すこと。
読めばわかるんだったらそれでいい、桃白白はそう思ってる。
お前はコメントを書くべきだと思ってる。じゃあ
>>736 に書きなよ。
>>850 意向は元の質問読めばわかるだろ頭弱いのか
>>821 ああ、別にプログラミングで食ってる人間ではないのか。
「言いたいことが相手に伝わってると思う」ではちょっと独り善がりだね。
一人作業しかやったことないとわからんだろうけど、同じレベルのプログラマーの間ですら、考え方の違い一つでで齟齬を生むことなぞごまんとある。
だからこそコード以外の部分(コメント、ドキュメント、コミュニケーション)が重要になってくるんだよ。
まぁ、この程度のコードなら不要っちゃ不要だが、みんなが言いたいのはそういうことなんじゃないかな。多分。
>>853 それこそ
>>850 の意向は「コードを書いた本人(桃白白)じゃないと意向なんかわかるわけないだろ」なんじゃないかな。
パイパイがどうかは知らんが ExcelVBAスレで皆が職業プログラマだと思うのはどうかと思うぞ
プロが書こうがアマチュアが書こうが駄目なものは駄目ですから。
駄目だ、不足してるのはコメントだけだと勘違いしてるわ。
アマチュアのコードの改善点()を指摘して鼻高々のプロのみなさん()
へぇExcel VBAでコード書いて食ってる人なんているんだな マジうける
860 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 18:39:16.63
>>854 桃白白が書いたコードについてこうしろって言う人の方がよほど独善的じゃん。
編集していいって言ってんだからやればいいじゃん。
>>861 というより思いもよらなかった
食えるんだねえ、こんなもんで
あっ、もしかして自分の職を守るためにここを荒らしているのかな
食べて行くのって大変だよね()
>>862 言語だけで考えちゃうとそう思うけど結局内容だからな
おれはシステムの補助ツールとして関わる程度だけど過去にはVBAメインてのもあったよ
今度は荒らしということにしたいんだ。
>>859 >>854 は「プログラミングで」って言ってるじゃん。
VBAだけとは一言も言ってないし、普通の職業プログラマは色々言語使えて当たり前だよね。
>>860 >桃白白が書いたコードについてこうしろって言う人の方がよほど独善的じゃん。
それはお前の中に拙いものがあって、それを指摘してるだけなの。
「コードさえ書けばいい」なんてのは勘違いの元だから考えを改めた方がいいと俺も思う。
コメント書けばいいってわけでもないが。
ようは、コーディングできるのは「当たり前」なの。
コーディングできた上で、コミュニケーションやドキュメンテーションも必要なの。
お前がそういうものを遮断するから、拗れてるの。
お前の日本語も長いくせに内容は補足や継ぎ足しばっかりで、ろくなソースじゃないぞ。きっとプログラムも似たようなもんなんだろうな。
おいパイパン、いいかげんにしとけよ
868 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 20:03:03.38
プロのプログラマーならどんな入力値でも落ちないプログラムを書くもんでしょ で、相手が職業プログラマーだと勝手に思い込むって、資質的に問題あるんじゃないの?
いい加減にスレ違いの発言を辞めよう。 プログラムで食ってようと何だろうと、未熟なものは未熟。 それを上から目線で指摘するんじゃなくて、誇りを持って優しく諭してやれよ。
諭すってなんだよ。 対等でいいだろ。
どれだけループさせれば気がすむの? 批判されるのが嫌ならコードを上げなければいい。 上げるのなら、批判は甘んじて受けろ。
>>870 優しくないと思うのであれば他の掲示板行ってくれ
874 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 20:16:41.46
>>872 桃白白批判受けたよ。だからいんでしょ、それで。
スレ違いの批判をしてスレを荒らすのは自由だ。 だげ、荒らすのなら自分に対する批判は甘んんじて受けろ。
>>864 ん?正義か何かの為にやってるつもりなのかな?
>>871 俺に噛み付くなよ…対等でもいいさ。
俺からしたらパイパンのコードは未熟とは感じないが、皆が未熟っていうならそうなんだろ、多分。
コメント云々言う人がいるが、
>>1 にもある通り『プログラマ用のスレ』である。
質問者がパイパンのコードを鵜呑みにして、ろくに調べずに運用しているとそいつの成長はそこで止まるって事。
そういう観点でいうと読みやすさとか求めるのはおかしいと思う、向上心がある質問者は自分で全部どうやって動いているのか調べるはずだしさ。
答えたい奴は、仮に質問者から解説を求められた時の備えは用意しておく必要がある(パイパンへのメッセージな、これ)
そういう意味では、コメント振らないって言うんじゃなくて、分かりづらい部分に振って上げるのが質問者への配慮だと思う。
自分以外分からない隠れたメッセージ何ていくらでもあるから、コードだけで語るんじゃなくて他の伝達も欲しいな。
俺はお前のコード好きだぞ、コメント無いからかな、読むのに燃えるぜw
質問者からすれば回答者がプロだろうがアマだろうが関係ない。 問題にしているところがきちんと解決できればいいだけ。 質問者の最終目的と問題にしているところは必ずしも一致している訳じゃない。 最終目的=問題と短絡的に捉えている回答者に問題があると思う。
>>877 そいつの成長がそこで止まるって、それで何か問題がそっちにあるの?
おいおい、今度は読みづらいコードこそ学習者のためになるということにしたいようだぞ。
新スレのテンプレでも議論してるのかと思ったら、なんだ、平行線の不毛なつつきあいか。 コーダーはスレ立ててきなって。
>>879 いや、こっちには影響ないよ。
俺もだ、俺以外の奴がどうなろうと基本知ったことではないさ。
だからこそ、読めるようにコメント振れとしつこい人の考えが分からないよな。
与えられたコードをどうするかは質問者の自由だから、質問者とコードを上げた人の当事者二人でやり取りしろと思う。
部外者はそれに口を出すべきではなく、口を出すなら批判ではなく訂正や擁護で行う。
まぁ、色んな人がいるから理想論だけどな…。
>>877 >>1 ★5にはこのスレのプログラマの定義が書いてある。
プロ、アマいるだろうからこの定義は妥当と思う。
> 質問者がパイパンのコードを鵜呑みにして、ろくに調べずに運用しているとそいつの成長はそこで止まるって事。
この時点で
>>1 ★5のプログラマの定義から外れているわけだが。
客観的に見てクレクレ君にしか見えない。
>>880 すまん、元は俺の勝手な意見だ。
ただ、読みづらいなら質問者が自分で読みやすくすればいいんだ、ここはそういうスレだろう?
まだ指摘を批判と思ってる奴がいるのか。
>>884 今回の質問者はパイパンのコードが善きものだと思ってしまうぐらいVBAの知識がなかったんだからそれは無理。
俺らが出来るのは、それをお手本にしちゃ駄目だといってあげるくらいしかない。
>>883 クレクレ君は確かにな、ここに来る人はそういう人多そうだよな。
しかし、客観的に見てっていうのはあくまで個人の主観だしさ、俺からは今回の質問者は結構頑張って自分で解決しようとしていた動きがあったよ。
>>887 いや、お前が正しいと思う回答をしてやれよ
出来ないのか?
891 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 20:50:38.88
>>887 「俺ら」というやつにろくなやつはいない。これ豆な。
(なんか1人でたくさんレスしてる奴がいるな~)
>>887 今は無理って事は俺にも分かるけど、質問者頑張っていた動きが見えたよ、
>>887 でも書いたけどさ。
今回は当事者二人以外の外野が騒ぎすぎてしまった感じがするんだけどな…。
>>892 それは質問した人の役に立たなかっただけじゃないか?
回答者にその指摘をしたなら筋違いだぞ。
>>892 なるほど、自分の回答が無視されたからもうパイパン叩くことしかできなかったと
ホント何やってんのお前
>>894 質問者が頑張ってる姿勢を見せたからこそ、パイパンのコードを目指しては駄目だと言ったんだよ。
できました、ありがとう、で終わってたなら、俺も何も言わなかったよ。
898 :
883 :2013/06/01(土) 20:57:22.85
>>888 今回の競馬の質問者に限ってはそんな印象。
最終的には自分なりのコードでできたとか言ってたし。
クレクレ君が多い元凶はパイパンしか思いつかない。
>>896 質問者が俺のコメントを無視したのは、多分知識不足で意味がわからなかったんだと思う。
別に無視されたからといって、なんとも思ってないよ。
次スレ建てる時の提案なんだけど、
>>1 の★5を外してみないか?
問題があればまた復活させるとしてさ。
あの一文は影響力高すぎて、誰かが示したコードへの意見もやりづらくなる。
そのコードはこうすれば良くなる…という意見が『正解過ぎる場合』があるし、現状★5のせいで出せないからな。
そもそも論で言わせて貰うと、クレクレ君が気に喰わなければ無視すればいいだけの筈だ。 実際、仕事で困った事に直面して取り敢えず急いで回答が欲しい者もいるだろう。 プログラムを勉強したい奴がどうのこうのとプログラマーの有り方を語りたいなら プログラマー板でやれ。
影響力が高いとも、そのせいでコードへの意見がやりにくくなるとも思わんが 外したければ外せば良いんじゃね
>>901 そういうのはコード作成依頼スレとするのがいいと思うけど。
>>899 なるほど、質問者のレベルを見誤って回答を無視されたのはなんとも思ってないけど
質問者のためにはもうパイパン叩くしかないと
>>900 >誰かが示したコードへの意見もやりづらくなる
コードが出しにくくなるってならわかるが、出したコードへ意見しにくくなる?
だったらなんで桃白白のコードがこんなに叩かれてるんだよ
なんだかんだ言ってテンプレ変えたいだけなんじゃないのか
とは言え今こんな状況であれば確かに1度変えて見るのもいいかもな
>>904 パイパンのコードが酷いということが叩くということになるんだとしたら、そうなるね。
これはひどい
たぶん、どうしてもテンプレ変えたくない奴と、どうしてもテンプレ変えたいやつがいるんだろうけど 正直どうでもいいわ
>>905 テンプレ変えたいさ、そうしないとまた荒れるしなぁ。
パイパンがここまで叩かれているのは、ここのVBAが詳しい人達の意見を無視してた事だよ。
もう少し何とかならないかと思うけど、人の事だし、性格を悪くいう気はないしな。
別に俺は自治を気にしてないし、でも好きなスレだし荒れると面倒なんだ。
変な意味はないぞ~。
なんでパイパンのこと悪くいうのさ、って頑張ってる奴が飽きれば、 すぐに落ち着くと思う。
上から重ねて立ててそっちに誘導すればいいんじゃね? 重複スレの場合、プログラム板は大概自治に任されるし。
別にこのままでいいよ。 ★5だから却下とかしつこくいう奴が出現しなけりゃ、今までも柔軟に運用されてきたんだからさ。
次スレもまたこんな感じで荒れるのか・・・
918 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 21:29:53.05
>>917 いやだよね、何が原因なんだろうね・・・
まっとうな批判を受け付けない人と、まっとうな批判に見せかけて 自分の意見を押し通そうとする奴がいる限り、荒れるのは止められない
920 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 21:32:31.07
>>919 一人ぬけてるよ。
真っ当な批判をするやつを叩く奴がいると荒れる。
もうぐちゃぐちゃだねw
まあ、パイパンのコードに触ったら酷いことになるというのが今いる奴は 身にしみただろうから、次スレからは改善されるだろう。
>>924 パイパンに触れた時点で酷いことになるのが身にしみて分かったわ
927 :
桃白白 ◆9Jro6YFwm650 :2013/06/01(土) 22:34:52.67
どうみてもGARNET CROWです…
荒れてる原因は、犬どもによる桃白白叩き。それしかない。 桃白白の発言だけ抜き出しても「なんで叩かれなきゃいけないの?」としか思わない。 どっちの側にもついてない人、俺以外にいたら誰か判定してくれよ。 この期に及んで桃白白への人格攻撃を連打して、「コードのここがおかしい」とか議論すらなし。 あったとしても「コードはおかしいが、指摘するレベルにもたっしてない」とかいう意味不明なレベルwww
Excelは人間向けに作られている 効率のみをひたすら考えてVBAで膨大な処理するにはシートのセルの数が少なすぎると思った シート1000シートに分割使用としたけど動かなくなった おわり。
試しにシート5000枚くらい作ってみたけどふつーにできた
つまり「分割処理」の中に何か問題があるかもだ。
今のエクセルって1シートで100万行、1600列以上だぞ それでセル数足らんようなら、ちゃんとしたデータベースの使用を考えるべきだな
Excel5.0とかの話かもしんない
>>932 その全部にデータを入れたら激重になりそう
accessでやれ
次の質問どうぞ
940 :
522 :2013/06/02(日) 16:30:15.35
スレッドが荒れた元凶だったので登場しませんでした。申し訳ありません。 桃白白さん、またアドバイスくれた方、本当にありがとうございました。
>>929 同意
桃白白叩いてるやつって、みんなで何かしようってときにひたすら重箱の隅をつついて
結局自分は何もしないで周囲の足を引っ張るだけのやつと行動が同じ
リアルでやってハブられて孤独なのかもしれないが端から見て見苦しい
>>941 消えかけた火に油を注いだつもりだろうがそうはいかんぞ
>>941 逆だな。
みんなで何かをしようとしてるときに、一人だけ別行動を取って和を乱すのがパイパン。
>>943 確かにそう。
周りに気遣う配慮がないから、周りもパイパンに気遣わずにスレートに言ってるわけなんだけどね。
>>943 >みんなで何かをしようとしてるときに、一人だけ別行動を取って和を乱すのがパイパン。
なんかしようとしてたのか?wwwwww
活動してるリア充桃白白に嫉妬してるヒキコモリが叩いてるだけだろう
>>945 いい加減バレバレだからコテハンつければ?w
こういうレスをするときだけ名無しにしてるんでしょ。
947 :
桃白白 ◆9Jro6YFwm650 :2013/06/02(日) 18:07:46.99
>>946 はぁ????
おまえが活動しないっていう敢然たる事実を指摘しただけだが。
桃白白が他の連中と違うベクトルでコード書いてるならわかるが、
書いたのは桃白白1人だろ。
それを「みんなが行動してる時にぃ~」ってアホかおまえ
949 :
桃白白 ◆9Jro6YFwm650 :2013/06/02(日) 18:49:22.64
>>948 かんぜんじゃなくてげんぜんな。厳然。厳然たる事実。
コミュニティの否定か だからやっぱり白桃はアドレス欄にメール入れて「無料でExcel VBAコード作製します」とでも触れ回ってろよ
>>948 コードを書いてるのがパイパン一人なのが、まさに和を乱している証拠なんだよ。
異論反論はあるが、このスレは
>>1 ★5にもあるように、質問に対して完全なコードを
与えるスレではない。そうやっているのはパイパンただ一人だ。
色々言ったけどタオパイさんやっぱ憎めない性格だわ
>>948 は違う人なんだよね?w
コード書きたいだけなら余所のスレでやってくれんかな。 ここ、コードクレクレスレじゃなくて質問に回答するスレだし。
回答スタイルに文句つけてる人は、別スレ立ててそこで論議してくれ 回答内容を批判されるのが嫌な人は回答しないでくれ
>コード書きたいだけなら余所のスレでやってくれんかな。 いや、だから、今回の質問者(競馬野郎)がたまたまコード書かないと解決しないような問題だっただけだろ。 他に「コードください」って質問してきた奴いるか? っていうか「そもそもBOOK上げろ」って言ってたのは桃白白じゃない。 桃白白はBOOK論争の時は出現すらしてなかったろ。 で、競馬野郎が、BOOKあげたら、桃白白が現れてコード書いたんだよ。 そしたら、わけのわからん連中が桃白白をわーって叩きはじめた。
別にコードで回答したっていいだろ 全部教えるとそいつのために~とか言い出す奴は 本気で質問者心配してるならスカイプでも繋いで 解決するまでみっちり教えてやれよw
>>956 そうしたいなら別スレ立ててやれと何度言われればわかるんだ?
ここは学校じゃないし質問者は勉強しに来てるとは限らない 答えだけが欲しいことだってあるし、なんでそれが否定されるのかわからない 「質問スレ」って何?みたいな根源的な話を今さら始められてもなあ
自治厨まじきちだなw
コードで回答したいならすればいいよ それをかたくなに否定してるのは一人だけだし コードで回答するのが是か非かの論議は別スレでやってくれ
スレのルールが気に入らないなら、横紙破りするんじゃなくてまずルール改正を 提案するのが大人の態度ってもんじゃないかね。
内容を批判されても暴れなければ、コードで解答してもいいと思うよ。
>>955 あの程度で「コードを書かないと解決しない」とかどんだけだよお前・・・
>>963 桃白白叩きするやつってなんで安易に人格攻撃するん?
そういう腐った態度が結果的に反感買ってるっていう自覚はないの?
文章で説明するよりコード書いた方が早いわ
わけの分からん連中とか腐った態度とか、そういう言葉遣いが反感をかってるという 自覚は無いんでしょうか。
桃白白叩いてるアホって2,3人くらい?
>>965 ただ結果として、今までそうやってきたのは、ほぼパイパン一人なんだよね。
>>955 ちゃんとスレの流れ読めよ。
パイパンがコードをアップしても質問者は「助かるけど解決にならない」っていってたんだけど。
その後結局レースごとの頭数が違うからどうやったらいいかわからないって話になった。
一レースのランク付けとマーク付けは自分なりのコードができているってことだったから
回答者が複数のレースの位置、頭数を出力するコードを提供したんだよ。
この時点で話が終わってるにもかかわらず、パイパンが流れを読まずダメダメなコードを提示したから荒れたんでしょ。
他人の提示したコードがおかしいと思ったら聞けばいいのに聞かないんだよな。
パイパン本人はコードの議論したいと言ってるのに、不思議なんだよ。
こういうのを踏まえるとコードの議論じゃなくて
パイパンが書いたコードの議論をしたい。
としか理解できない。
糞コードに対して糞コードだって言うのが叩くということならかなりの人数いると思うが
>>969 荒れたんじゃなく荒らしただろw
すぐ他人のせいにするのがお前の悪いクセだw
>>971 ん?原因はパイパンのコードしかないのだが。
燃料がなければ荒れることもない。
>>540 で実は話は終わってたんだよな。
今もう一回そのページ見に行ったら、ダメコード例として、まさパイパンライクなコードが
示されててワロタ。
その後で、Excelに精通していない人からVBAを習ってはいけませんと赤字で強調されてて、
さらにワロタ。
要するに白桃のオナニー用にスレが使われたくないのか 白桃はオナニー禁止だばか野郎
パイパンって言語名みたいだな
白桃専用すれ立ててこい
あ、それでいいです
'---ここまで平行線 '---ここからも平行線
>>974 いつもパイパンのコードを見るとパイパンのオナニーを見た気になってしまって気が滅入るんだよな。
それが朝だったりするとその日はブルーになる。
>パイパンが流れを読まずダメダメなコードを提示したから荒れたんでしょ。 なんで いちコテハンがコードを提示すると荒れるんだよ。 お前の頭はチンパンジーか?w
>>980 コテハンがコードを提示すると荒れるなんて一言も書いてないぞ。
コテハンじゃなくても流れを読まずダメダメなコードを提示すれば同じ事になる。
駄目じゃないと言い張ったから荒れたんだよ。
名無しがダメコード晒したところで単発で叩かれておしまいだけど コテハンが毎度ダメコード晒してたら荒れそう
この板でコテハン叩き大好きといえばseikyou.ne.jpさん ただ一人に決まってるだろ。過去の実績が物語る。
どこの誰か知らない人が質問してどこの誰か知らない人が回答してなにか困るの? ウンココードだろうが質問者が喜んでるんだからほっときゃいいじゃん そんなにソースコードレビューがしたいならお金もらったやったほうがいいんじゃないの?
まだやっているのか、いい加減にしろよ。 もうお前ら全員荒らしだよ、質問スレ云々言っている奴居るけど、質問しづらい雰囲気作っている限り全員荒らし。 次スレじゃこんな事が無いようにしようぜ、パイパンが何しようといいじゃねーか。 一応人の役立っているっぽいし汚くて気に入らないコードを提示しても質問者が良いといえばいいんだ、後悔するのは自分だしよ。 次スレのルールに誰でも自由に書き込めるロダで指定するんだな、そしたら誰でも訂正出来るだろう。
毎回論争のタネになるテンプレは次こそ直しとけよ
>>986 例えばどこロダ?wikiみたいに誰でも編集できるの?
技術者の端くれならコードで語れよ
>>985 パイパンオナニースレになってるのが困ってる最大の理由かなw
ピンク板みたいなネーミングだw
>>988 パイパンも使ってるけど、Friendpasteが良いんじゃないか。
軽いし、コード専用だから使いやすいと思う。
じゃあ、次スレからはコードで解答するのは自由、そのコードにケチ付けるの禁止でいいな?
パイパンのコードがダメダメだったら、もっといいコードをうpれば問題なし
>>995 そもそもパイパンありきになってるし、全コード書く必要ないし。
コード書けるのなら日本語かけるでしょ。
>>993 賛成だ
回答にコードをもらって困る人はいないし
ぶっちゃけ本音ではヒントやうんちくよりも
ズバリのコードを書いて欲しいという質問者がほとんどだろう
>>996 だから、ケチ付けると荒れるから、コードで示せってこと
パイパンに取ってはレビューしてもらえる機会がなくなるけど、自分のコードは至高のコードだと思ってるから問題なし
おわり
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。