楽屋落ち

  • _Kyle(1291004)
  • 2010/04/24 (Sat) 00:46:23
駄洒落ですいません、ヲチスレです。

なまあたたかく。

======================

新規ネタ投下はもちろん
「その認識は違う!」みたいな再ツッコミも歓迎。

あと、「晒す」意図はないです。
ここに晒したところで見る人ほとんどいませんし。

なんといったらいいか…「供養」?

qa7710195

  • _Kyle(1291004)
  • 2012/09/22 (Sat) 00:20:25
■課題レポートで・・
http://bekkoame.okwave.jp/qa7710195.html

形式論理は回答つきにくいよね。
記法と推論規則が「講義の数」だけあるからね。

 Q.「○○するプログラムを書いてください。」
 A.「言語は?」
 Q.「教官の自作したSUZUKI-Cです。」
 A.「とりあえず、その言語のリファを丸ごとうpれ。
    ハナシはそれからだ。」

みたいな感じになっちゃう。

C系だなぁとか、BASIC系だなぁとか、アセンブリかよっ(@_@;)とか、
それくらいのことは判るし、フローもだいたい判るけど
実際コーディングしてくれとなると
シンタックス(記法)と関数(推論規則)が判らないことには
どうにも手が出せんよね。

---------------------------------

で、"簡単化"って書いてるけど、
もし「連言標準形に直せ」ってことなら
むしろ因数分解に近い感じになるよね。

3行目がたぶんマチガイで、

¬x1x2¬x3+¬x1x2x4+x3x4
⇔¬x1x2(¬x3+x4)+x3x4
⇔(¬x1+x3x4)(x2+x3x4)((¬x3+x4)+x3x4)
⇔(¬x1+x3)(¬x1+x4)(x2+x3)(x2+x4)(¬x3+x4+x3)(¬x3+x4+x4)
⇔(¬x1+x3)(¬x1+x4)(x2+x3)(x2+x4)(¬x3+x4)

みたいにもってくハナシぢゃないかな?

 # 普通は逆なんだけどなぁ…。

Excelでテストしたら
変形そのものはあってるみたいだけど、
そもそも"簡単化"ってのが、
こうしろって意味かどうかも判らんしね。

----------------------

ちなみに、わたしが習った記法でいくと

(-P&Q&-R)v(-P&Q&S)v(R&S)
┤├(-PvR)&(-PvS)&(QvR)&(QvS)&(-RvS)

みたいになる…んだったっけ?ww

選言記号の"v"は"∨"の出し方知らないわけじゃなくて小文字のv。
ラテン語の"vel"の頭文字だそうで、
試験でつい"∨"って書いたらアウトにされた orz

----------------------

さらにちなみに、Excel数式で書くと
変形前が
=OR(AND(NOT(A1),B1,NOT(C1)),AND(NOT(A1),B1,D1),AND(C1,D1))
変形後が
=AND(OR(NOT(A1),C1),OR(NOT(A1),D1),OR(B1,C1),OR(B1,D1),OR(NOT(C1),D1))

qa7700422

  • _Kyle(1291004)
  • 2012/09/19 (Wed) 19:35:36
■数字をあてはめる方法について
http://bekkoame.okwave.jp/qa7700422.html

qa7621154についてはもう覚悟決めたけど、
これはスルーしてもいいよね。^^;;;;

qa7697651

  • _Kyle(1291004)
  • 2012/09/19 (Wed) 19:32:51
■セルには何も入ってないのに、数値型になる理由は?
http://bekkoame.okwave.jp/qa7697651.html

なんという……wwwwww

#1,2,3もいい加減アレだけど

#4-5

>IsNumericは対照セルが数値か否かをtrueかfalseで返すVBAの関数

>Excel関数、VBA関数、戻り値の型など知識を深めるともっと面白くなります。

【 IsNumericは引数の型を判定する関数ぢゃないよ 】

-----------------------------------------

なんでまともな人たちが誰も突っ込まないのかと思ったら
この質問者、こないだから捨てアカで釣りしてる子だね。
なるほど。

で、某巨大掲示板あたりで、変なスレ立ってたりするの?

 【怪答者が】OKWaveをマターリ凸スレ【入れ食い】

みたいな。 

qa7697154 :長文 (v2.0)

  • _Kyle(1291004)
  • 2012/09/19 (Wed) 19:18:49
■アルゴリズムについての質問です
http://bekkoame.okwave.jp/qa7697154.html

いろいろ術語飛び交ってる割に
解決に向かってるように見えないんだけど…??

まぁ、【技術者向】 コンピュータカテで
【アルゴリズムについて】質問したのが運のつきよね。

Officeカテなら「使える」回答がついたかもしれんけど。

============================================

◆#2氏

 >「重みtab」はrangeオブジェクトのまま使用すべきではありません。
 >別途テーブル用のクラスを作り、そこで管理すべきです。

[重みtab]はRangeオブジェクトぢゃアリマセン。現状でVariant配列デス。

 # Longにすれば多少速くなるけどね。

-----------------------

◆#4,7,9氏

 >EXCELにも【そのための】ソルバーがあります。

違イマス。

ソルバーは「線形計画」には強力なツールデスガ
価値が離散的に変化する「整数計画」には【向キマセン】

 追記)
 ・移動数が多い
 ・重み表のサイズが相対的に小さい
 ・"労力"の単価が相対的に小さい
 ・誤差を許容する
 状況では、線形計画っぽく、つまりソルバーの領域になる可能性があります。

 >実際にはEXCELではなく【Rubyで】やっています。
 >この場合は100個で総当たりの実行時間が1秒程度です

他言語のタイム出しても無意味な気がシマスガ?

-----------------------

◆#5,8氏

たぶんそれが正解なんデショウケド、
質問者さんのレベルではコード出さなきゃ絵に書いた餅デハ?

-----------------------

◆#4,7,9氏

 >要するに図2を100組です。

Officeカテではあまりみかけない方のように思イマスけど
BA率75%ってのはたいした数字デスから、きっと実務家タイプなんデショウネ。

おそらく【ゴ自分の土俵では】
とても経験豊富で、細かい仕様や挙動やTipをよく知ってラシテ
コードなんかもさらっと書ける有能な回答者さんでイラッシャルンデショウケド…。

 【 "100個のデータ" と "8個のデータ100組" ぢゃ全然違イマスガ! 】

 【 100! と 100*8! ぢゃまったく違ウデショ! 】

 >プログラムをざっと見たのですが、
 >重みtab(t01(a), t02(a))
 >などように重みtabのなかにt01(a)のように配列がはいっているのをやめて、
 >(略)A群数×B群数の大きさの配列(抜き出した重みtab)をつくってしまったらどうでしょうか

[重みtab]がまさにソレデスガ。 (ーー;)

 # Variant型だけどね。

 追記)
 寝言をほざいてたのはわたしの方でした。
 完全な読み違えで、たいへん失礼いたしました。<(_ _)>

他言語の人からみたら、

 重みtab = Range("重み表")

で配列ができちゃうってピンとこないのかもしれマセンガ、VBAではそうデスカラ。

 >再帰呼び出しは一般的にはかなり遅くなります。
 >普通にぐるぐるループを回した方が速いです。

具体的に、どういう点をもって遅いと考えてるのかワカリマセン。

 ・再帰で総当りするケースを想定している
   # 確かにときどきいるよね。

 ・大きな変数を値渡しするケースを問題にしている
   # 確かにときどきあるよね。
 
 ・スタックを問題にしている
   # コーディングによるけどね。あと、たぶん言語によってもかなり違う。

 ・普通にぐるぐるループを回す場面でなぜかわざわざ再帰するケースを想定している
   # まぁ、普通にぐるぐる回して済むならその方が軽いよね。

クイックソートもディレクトリ探索も
普通の実装は再帰だと思イマスガ??
モシカシテ普通にぐるぐる回す人デスカ?

 追記)
 たいへん失礼な表現を謝罪します。 <(_ _)>

-----------------------

◆#5,8氏

だから、クイズぢゃないんデスガ。
正解出せばいいとか、そういうハナシではナクテ。

 # まぁ、技術者でもないのに
 # 【技術者向】 コンピュータカテで
 # 【アルゴリズムについて】質問してる質問者さんが
 # 悪いっちゃ悪いんだけどね。

-----------------------

◆#4,7,9氏

うん、(実務的には)有能な人ではあるんデショウケドネ。

この後に及んでコードオ出シニナラナイところをみても
VBAに関してはマッタク門外漢なんデショウシネ。

【技術者向】 (略)質問者さんが悪いっちゃ悪いんデスケドネ。

-----------------------

◆#3,6氏

おそらく、いちばん状況が見えてるし
いちばん実際的なアプローチな気もするけど
いかんせん数理屋さんよね。

 【 ココはごりごりやる場面でしょ 】

 # えっ?

============================================

◆いるか

コードざっと見ただけでも、
コーディング見直して、がっちり枝刈れば、
とりあえずそれだけで相当速くなるよね。

 # つか、現状が遅すぎ。

-----------------------

技術屋さんや数理屋さんが
しばしば見逃す(あるいは見ない振りする)ポイントだけど
事務系実務における組み合わせ最適化問題って

 【 「逆スケール」するのよ 】

技術屋さんや数理屋さんはしばしば
「指数関数時間かかるアルゴリズムは、スケールアップすると終わらなくなる」
ことを問題にするけど
実際のところ
「指数関数時間かかるアルゴリズムでも、スケールダウンすると意外と終わる」
のよね。

「要素が1つ増えるだけで、所要時間がN倍になる」
「枝1層分刈るだけで、所要時間がN分の1になる」
どちらも同じことだけど、どちらに注目するかというハナシ。

-----------------------

技術屋さんや数理屋さんが
しばしば見逃す(あるいは見ない振りする)ポイントだけど
事務系実務における組み合わせ最適化問題って

 【 スケールの天井が決まってるものなのよ 】

技術屋さんや数理屋さんはしばしば
「要素数が百倍になったら…」とか考えるけど
実際のところ
「要素数の上限は普通動かない」のよ。

たとえば、ソートアルゴリズムを考えるような場面であれば
要素数が10のときもあれば10000のときもあるよね。
だけど、事務系実務で組合せを考える場合
これまで30個程度だったものがいきなり3千個になったりしないのよ、ふつう。

-----------------------

技術屋さんや数理屋さんが
しばしば見逃す(あるいは見ない振りする)ポイントだけど
事務系実務における許容所要時間って

 【 分単位なのよ 】

大きなシステムの内部処理であれば
1件解決するのに【何ミリ秒も】かかるような処理は「論外」だろうけど
事務系実務の場合は
【たった3分で】片付くなら、普通オッケーがでるよ。
 # 場合によっては「昼休み中に終わるなら、まぁ…」なんてことも
 # 基本、比較対象が「人力」「手作業」だからね^^;;;;;;

この質問者さんが期待してるのも
「10ミリ秒で終わるコード」ではなくて
「せめて数分で終わるコード」よね、きっと。

============================================

と、コードも出さずに、どころか、コードも書かずに騙ってみたけど(ぉ
どうすっかなぁ…。
ぃゃ、回答する気はないんだけどね。さすがに。ほんとに。

ちょっと書いてみたくなったので。でも回答できないしな。
でもここまで書いちゃった以上、書いてみないわけには…。

実際書いてみないことには「昼休み中に終わる」かどうかわからんしね。

現状8まではなんとか動くっぽいし、
上限100でよさそうな雰囲気だから、
「昼休み中」レベルの条件なら
なんとかなりそうな気がするんだけどね。

 # 要素数100だと総当りで9E157やね。
 # どこまで刈れるか…。

qa7621154 :(8) (v2.1)

  • _Kyle(1291004)
  • 2012/09/16 (Sun) 23:44:51
もはやまったく"ヲチ"ぢゃなくなったけど…

■共通の値をもつ座標の組み合わせについて
http://bekkoame.okwave.jp/qa7621154.html

……。

放置ぢゃなくて、終わってなかったのね orz

>新たに質問を
って、ホントはいかんのだけど、(^^;;;
新たに質問立てられたらそれはそれで困る(?)し
まぁ、行き掛かりってやつよね。
終わりかけてたところへ横から入ったのわたしだし。

でもきょおはむり。明日ね。

-------------------

出順どうするかによってハナシが変わってくるよね。
バラバラでもいいなら簡単だけど
数百万件全部出してからソートするとなるとなぁ…。

 # それにしても、100万超えたら折り返すって、
 # どうやって運用するつもりなんだろ?
 # そもそもどういう処理なのかしらん??

qa7670136

  • _Kyle(1291004)
  • 2012/09/15 (Sat) 21:15:09
■Excelの印刷プレビューで数値が表示されません。
http://bekkoame.okwave.jp/qa7670136.html

ホームユースだし、数字だけ(?)となると、
フォントまわりな気がする。

qa7683815

  • _Kyle(1291004)
  • 2012/09/15 (Sat) 21:10:33
■Ecxell 2010(office 2010)が
http://bekkoame.okwave.jp/qa7683815.html

>急に重たくなる前と後で違う点はオフィスを移転し、
>新しいネットワーク環境になったくらいです。

これきっと、バックグラウンドで
ネットワーク上の存在しない場所かファイル見に行ってるよね。

>一個の編集をする度に同じ現象になります。

となると、再計算かChangeの際にどっか見に行ってるわけね。

でも、
立ち上がりは普通で、既存ファイルが一斉にとなると…。

旧環境で、何か仕込んだカスタムテンプレ使ってなかった?
ロゴマーク画像がどうたらとか、そういう落ちだと思うな。

-----------------------------------------

つかね、私物のノート持ち込むか
あるいはファイルの持ち出し許可貰って
最寄のネカフェで開いてみれば
環境の問題かファイルの問題か一発でハッキリするよね。

そこそこスキルのありそうな質問者さんなのに
何で原因切り分けようと思わないかね。

きっと「環境が変わったせい」だと思い込んじゃってるのね。
それはまぁ、たぶん間違いないないけど、
「環境が変わったせい」には2つのケースがあるよ。
・「現在の環境がおかしい」
・「以前の環境が特殊だった」

qa7676314

  • _Kyle(1291004)
  • 2012/09/15 (Sat) 20:30:15
■Excel2010において
http://bekkoame.okwave.jp/qa7676314.html

>これまで2007で使用していた時には、
>まったくあり得ないことだったのですが

いや、そんなことはないと思うけど?

ただ、そのエラーはねぇ…
文字通りの意味のときもあるし、そうでないときもあるし、
文字通りの意味でないときは、対応難しいのよね。

あと、バージョンによって挙動変わるしね。

 # 対応難しいつか、いまだによく挙動が読めん。
 # リサイズする前のサイズに依存するのかしら?
 # それともなんか、オーバヘッド必要??

re:qa7696975

  • _Kyle(1291004)
  • 2012/09/15 (Sat) 01:51:36
ジツを言うと
パッと見てスルーしそうになったんですが
読んでみたら意外にわかりました \(^o^)/ 

…気がする…だけかも?

●test1/test1_

関数呼ぶより定数使う方が…ですね。コレは判ります。

●test1_/test2

これも…まぁ…

 # でも、test2は&使ってるしな。
 # &使わないケースで、要素30とか100とか、
 # スケールアップしたらどうなんだろ? とか。
 # ↑た、め、せ > わたし

●test1_/test3

これはまぁ、そうですよね。
つか、Format(No, "@")って発想はあんま…^^;;;

●test3/test4

わたし的には
「ぉ、暗黙の型変換強し。」というより
「ぇ、暗黙の型変換強い!?」な感じですね。

一般論というか、素朴には、
明示的にやった方が速そうな気がするんですけどね。
組み込み機能使ってバックグラウンドで処理させた方が速いってハナシですかね。

まぁ、コード上でガッチリ最適化するより
ワークシート関数呼んだ方がむしろ速い…なんてこともままありますしね。

qa7696975

  • end-u(1037781)
  • 2012/09/14 (Fri) 21:51:47
■VBAでテキスト出力時のスペースについて
http://oshiete.goo.ne.jp/qa/7696975.html?order=asc

>Print #1, Format(No, "@"); Chr(9); Format(Intime, "@"); "/"; Format(Outtime, "@"); Chr(9); text
テキストファイルだから文字列処理すれば良いので

Print #1, Join(Array(No, Intime & "/" & Outtime, text), vbTab)
とか

Print #1, CStr(No); vbTab; CStr(Intime); "/"; CStr(Outtime); vbTab; text
とか

Dim n As String
Dim i As String
Dim o As String
n = No
i = Intime
o = Outtime
Print #1, n; vbTab; i; "/"; o; vbTab; text
とかもあるかなーと思った。
でも枝葉末節なのでボツ回答です。



で、どれが負担少ない(速い)かなと思って
'-------------------------------------------------
Sub try()
  Dim t As Single
  t = Timer
  Call test1("c:\test.txt", 100000)
  Debug.Print Timer - t
End Sub
'-------------------------------------------------
Sub test1(s As String, x As Long)
  Dim No   As Long
  Dim Intime As Long
  Dim Outtime As Long
  Dim text  As String
  Dim j    As Long

  Open s For Output As 1#
  For j = 1 To x
    No = j
    Intime = j
    Outtime = j
    text = j
    Print #1, Format(No, "@"); Chr(9); Format(Intime, "@"); "/"; Format(Outtime, "@"); Chr(9); text
  Next
  Close 1#
End Sub
'-------------------------------------------------
Sub test1_(s As String, x As Long)
  Dim No   As Long
  Dim Intime As Long
  Dim Outtime As Long
  Dim text  As String
  Dim j    As Long

  Open s For Output As 1#
  For j = 1 To x
    No = j
    Intime = j
    Outtime = j
    text = j
    Print #1, Format(No, "@"); vbTab; Format(Intime, "@"); "/"; Format(Outtime, "@"); vbTab; text
  Next
  Close 1#
End Sub
'-------------------------------------------------
Sub test2(s As String, x As Long)
  Dim No   As Long
  Dim Intime As Long
  Dim Outtime As Long
  Dim text  As String
  Dim j    As Long

  Open s For Output As 1#
  For j = 1 To x
    No = j
    Intime = j
    Outtime = j
    text = j
    Print #1, Join(Array(No, Intime & "/" & Outtime, text), vbTab)
  Next
  Close 1#
End Sub
'-------------------------------------------------
Sub test3(s As String, x As Long)
  Dim No   As Long
  Dim Intime As Long
  Dim Outtime As Long
  Dim text  As String
  Dim j    As Long

  Open s For Output As 1#
  For j = 1 To x
    No = j
    Intime = j
    Outtime = j
    text = j
    Print #1, CStr(No); vbTab; CStr(Intime); "/"; CStr(Outtime); vbTab; text
  Next
  Close 1#
End Sub
'-------------------------------------------------
Sub test4(s As String, x As Long)
  Dim No   As Long
  Dim Intime As Long
  Dim Outtime As Long
  Dim text  As String
  Dim j    As Long
  Dim n    As String
  Dim i    As String
  Dim o    As String

  Open s For Output As 1#
  For j = 1 To x
    No = j
    Intime = j
    Outtime = j
    text = j
    n = No
    i = Intime
    o = Outtime
    Print #1, n; vbTab; i; "/"; o; vbTab; text
  Next
  Close 1#
End Sub
'-------------------------------------------------
..なんてやってみる。

変数には便宜的にLoopカウンタをあててみました。
test1とtest1_はChr関数は負担だろうな、と思っての試し。

結果は「ぉ、暗黙の型変換強し。」ってところですね。

qa7676320: age

  • _Kyle(1291004)
  • 2012/09/14 (Fri) 07:19:02
■Exせl2010において
http://bekkoame.okwave.jp/qa7676320.html

「Exせl」使ってる人だから、作業グループも可能性としてはあるけど、
スタイル周りのトラブルな希ガス。

re7:番外103350

  • _Kyle(1291004)
  • 2012/09/14 (Fri) 06:25:55
>クォート囲み問題

……そうですね。

o...........rz

 # 同じことで随分前にもしくじった気が…
 # qa3438635 ←コレだ 
 # まったく進歩してない…つか、退化してる???

-------------------

重箱どころか、いやホント、ご指導感謝感激です (T_T)

「どっかしくじってる悪寒」
「ほんとにコレであってる?」
「なんか落とし穴ない?」
って自分で思ってても、普段どうしようもないので。

こんなふうに突っ込んでくださる方がいらっしゃると
…安心感が断然違います。 っておいwww

 # ぁ、ぃゃ、
 # 「書いてみたからチェックしろ!」的な意味ではなくて
 # 「もしお気づきの点がありましたらお暇なときに是非」的な意味で。

-------------------

以下 寝言。

…は例によって長くなったので別記事にしました^^;;;;;

re6:番外103350

  • end-u(1037781)
  • 2012/09/14 (Fri) 00:01:09
ホントだ。2007落ちますね。
#って..既に対策済みとは、素早いですね :)

重箱..ですが、External:=True のほうが良いかも。
()つきシート名などのクォート囲み問題がありますから。

re5:番外103350 (4.2)

  • _Kyle(1291004)
  • 2012/09/13 (Thu) 01:18:39
別環境でもテストしたけど、Excel2007だとやっぱ落ちるね。

絶対参照がマズいのかと思ったら
Sheet名から指定しないといけない模様。

 # で、
 # "Sheet1!A1"の形式でアドレスを返すプロパティってないんだっけ?

 # × ときどき、こういう基本的なとこで不安になるのよね(ぉ
 # ○ しばしば、こういう基本的なとこでしくじるのよね(ぉ

'-----------------------------------------------------------
'■【再修正版】左シングルクリックをトラップする(オマケ付き)

'対象範囲
Private Const myAra As String = "A1:B10"
'-------------------------------------------------
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

  MsgBox Target.Range.Address

' With Target.Range
'  Select Case .Interior.ColorIndex
'   Case 6
'    .Interior.ColorIndex = xlColorIndexNone
'   Case xlColorIndexNone
'    .Interior.ColorIndex = 6
'  End Select
' End With
 
End Sub
'-------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

  Dim myRng As Range
  Dim myCel As Range
  Set myRng = Intersect(Target, Range(myAra))
  If myRng Is Nothing Then Exit Sub

  For Each myCel In myRng
   With myCel
    If .Value <> "" Then
     .Hyperlinks.Delete
     .Hyperlinks.Add _
      Anchor:=myCel, _
      Address:="", _
      SubAddress:=.Address(External:=True)
      '× SubAddress:=.Worksheet.Name & "!" & .Address
     .Style = "Normal"
     .NumberFormatLocal = "@* "
    End If
   End With
  Next myCel

End Sub
'-----------------------------------------------------------

 追記:

  ↑は、番外103350を念頭に置いているので

  ・貼り付けありーの
  ・手打ちありーの
  ・追記ありーの
  ・削除ありーの

  という運用を想定し、Changeイベントでリンクを貼っていますが、
  もちろん、運用によっては、
  「対象範囲の全セルについて、自身へのリンクを一括して貼る」
  で構いません。

  対象セルが少なければ、別に手動でも。

  …って、一応書いとかなくちゃ?

   # つか、【もし】需要あるとしたらそっちだろ。
   # "サンプルコード"的には
   # 「一括でリンク貼ってロックして」
   # だったかもね。

 追記2:

  ブック名までつけるとかえってマズいかもと思ってたけど
  External:=True で通るのね。
  でも[ハイパーリンクの編集]するとブック名削られるし。
  とりあえずそのままにしとこ。

 追記3:

  External:=True が正解デシタ。orz
  ご指摘大感謝。

re4:番外103350

  • _Kyle(1291004)
  • 2012/09/12 (Wed) 23:33:01
ダメ出し大感謝です <(_ _)>

>Target.Range.Addressが複数セル範囲を返す

ありゃま、ほんとだ。

基本的に経験が足りてないので(経験だけぢゃないけど)
大雑把なアプローチは思いついても、いざコード書くとなると
こういう細かい(?)仕様や挙動まで気が回らないんですよね。

 # てか、
 # AddだけしてDeleteする処理がない時点で
 # なんかマズそうって気づけ > わたし

>『脱力系』

www
たしかにまぁ「ぐったり」はしますね。

--------------------------------------

…ってアレ?

マクロでリンク貼ったセルについて
ワークシート上で[ハイパーリンクの編集]しようとすると
Excel2007落ちる?? 2000や2003はなんともないのに??
Worksheet.Hyperlinks.Add でも、
Range.hyperlinks.Addでも。

Excel2007がおかしいのか、わたしのExcel2007がおかしいのか…

re3:番外103350

  • end-u(1037781)
  • 2012/09/12 (Wed) 21:34:17
確かにFollowHyperlinkメソッドを使うのは見たことがないかもしれません。
そういう発想はなかったですねー
勉強になりました。
#昔、APIでマウスの左右ボタンを入れ替えてBeforeRightClickイベント..
#ってのは見たことありましたけど。jokeコード?

>ダメ出し
ってほどのものではないですけど
Hyperlink設定されたセルを複数セルにコピーしちゃうと
Hyperlinks.Countが2になって
Target.Range.Addressが複数セル範囲を返すんですよね...
#そんな仕様だったかしらん?

Changeイベントでなくても構わないかもしれないし
要件によってはオペレーション的にコピーペーストは除外しても良いかもしれないし。
もし対応するんだったら

>If .Value <> "" Then
> ActiveSheet.Hyperlinks.Add _
ここ
If .Value <> "" Then
 .Hyperlinks.Delete
 .Hyperlinks.Add _
としたほうが良いかもしれませんね。
Rangeに対するHyperlinks。



>Target.Range.Addressが複数セル範囲を返すんですよね...
これは2003,2007です。
2010は直ってる(?)からバグだったのかも。



>..皆さんよく自制されてて、感心(?)しました。
昔は結構アレる板だったんですけどね。
今は多分みなさんおトシヨ..ぁわわw
ぃやこの件はどちらかというと『脱力系』スレッドだったのかなー・・なんてw

re2(?):番外103350 (4.0)

  • _Kyle(1291004)
  • 2012/09/11 (Tue) 23:45:03
いや、わざわざ書いてみるほどのハナシぢゃないんだけど
反応速度的にどうなのかなと思って。そんなに重くないよね。

もちろん普通は BeforeDoubleClick か SelectionChange でやるところだし
この手のアプローチはあんま見たことない気がするんだけど…。

 # 利点が「連続してクリックできる」だけの割に
 # 予備処理がめんどいからかな?

ダメ出し歓迎します。

'■左シングルクリックイベントをトラップする
'-----------------------------------------------------------
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
 MsgBox Target.Range.Address
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim myRng As Range
 Dim myCel As Range
 Set myRng = Intersect(Target, Range("A1:B10"))
 If myRng Is Nothing Then Exit Sub

 For Each myCel In myRng
  With myCel
   If .Value <> "" Then
    ActiveSheet.Hyperlinks.Add _
     Anchor:=myCel, _
     Address:="", _
     SubAddress:=.Address
    .Style = "Normal"
    .NumberFormatLocal = "@* "
   End If
  End With
 Next myCel

End Sub
'-----------------------------------------------------------

 修正:
  Subの順番入れ替えた。
  (遭難した第三者にとって)意図が判り難い…つか、
  途中までしか読まない人がときどきいるので。

 修正2:
  HyperlinkのSubAddressを取得するより
  Range.Addressを取得する形にしといた方が
  取り回しいいよね。(遭難した第三者的に)

 追記:
  ColorIndexの入替とか試してみたけど
  「腱鞘炎でない」海豚的には
  DoubleClickイベントのキャンセルが要る感じ?
  ↑ そりゃ震顫だってww

re:番外103350

  • _Kyle(1291004)
  • 2012/09/11 (Tue) 22:30:48
あはは。なんかキレ方にもお人柄出てますね。

 # ディスプレイの前で、ゥッきーっ!!!o><o 
 # ってキレてる某女優想像して吹いたのはナイショです。
 # ぃゃ、想像したというか、想像できなかったというか…www

でも、スレッドそのもの方は(1件削除があったけど?)
nさん始め、皆さんよく自制されてて、感心(?)しました。

ミナラ(ry orz

つか、わたしもいい加減オトナにならなくちゃ o......rz

==============↑レスココマデ↑==============

==============↓ココカラ寝言↓==============

板の雰囲気にもよるんでしょうけど、
本サイトだったら相当荒れそうな展開ですよね。

要求仕様やアプローチが揺れるタイプの質問者さんも困りますけど
自分の考え(つか思い込み?)にひたすら固執するタイプの質問者さんも…。

 # #103524さんの仰るとおり
 # "質問者"というより"依頼主"な雰囲気よね。
 # それもかなりモンスターな。

 # にしても、この手の人って何故かレトリック似るよね。
 # 「船舶航行システムや航空機の
 #  PSSRのソフトを開発して航空研等に収めた友人」とか
 # 「車載マイコンのソフト開発を長いことしてきた弟」とかwww

-----------------

で。

5年前の案件を今更検討してみるわけですが

 ユーザが自由に構成できる構造化されたリストの文字列を
 【常時別窓に表示しておいて】【シングルクリックで】
 Wordに貼り付ける。

ってことよね。

最終的には【既出の】SelectionChangeイベントを
自分で【再発見】して、捨て台詞吐いて「自己解決」だったわけですが
 # コレもときどきあるよね。
 # 「自分で見つけました」「出てるよソレ」な展開

それはまぁ、ともかく
「左シングルクリックをトラップしたい」ってのは
一般的なニーズとしては確かにあるよね。

邪道だけど、

 【 FollowHyperlinkイベントとかは? 】

隠し図形やボタン貼るよりラクだし軽い気がするけど。

文字列が短いとクリックしにくいので
セルの書式設定は[@* ]な感じで。

 追記:げっ、不正なURLだとイベント起きないや。orz

 追記2:自セルへのリンクを貼っとけばいいよね

-----------------

でも、Excelをアクティブにする段階で
どうせワンクリック必要なわけだし

この案件はやっぱ、
【 Excelでデータ作って、
  Word側から読み込んで、
  Word上に何か表示しといて… 】
よね。

つか
 >コマンドボタンを1つだけ作り、
 >クリックするべきセルをクリックし、
 >次いで、常にこのボタンをクリックする。
とか書いてるところから見ると
「操作の簡略化」がどうこうとかじゃなくて、
単に「腱鞘炎でダブルクリックできない人」
だったんじゃないかという疑惑も。

ダブルクリックをセンターか何かで代替するような
ユーザ補助ソフトとかマウスドライバとかきっとあるよね。

番外103350

  • end-u(1037781)
  • 2012/09/11 (Tue) 19:34:16
■テーブル範囲内のクリックとオフセットセルのコピー
http://excelfactory.net/excelboard/excelvba/cfs.cgi?word=103350&logs=13.txt

ぃや他サイトのしかも5年前のスレッド..
別件でローカルログテキスト検索してたらhitしてつい..

ログの最後に
>ゥッきーっ!!!o><o
>拾え!馬鹿!
>..(以下WordVBAコード)..
ぃやさすがに投稿してないですけど..若かったんだなーワタシも...orz

qa7684954: ぐだぐだ

  • _Kyle(1291004)
  • 2012/09/10 (Mon) 19:38:54
■XPのEXCELファイルがwindows7使えない
http://bekkoame.okwave.jp/qa7684954.html

ぐだぐだな展開 (ーー;)

7環境がないし、この辺【も】門外漢だからわかんないけど
アイコンが見えてるなら、DOSプロンプトで触れたりしないのかな?

この手のファイル片付けるフリーウェアも探せばきっとあるよね。

qa7647302: 不要なCOUNTIFを消したい

  • _Kyle(1291004)
  • 2012/09/10 (Mon) 19:28:48
■Excel2007 不要データを消したい
http://bekkoame.okwave.jp/qa7647302.html

#2,4氏って「COUNTIFで埋める」の好きよね。

 # 配列数式は重たいとかぶーぶー言う割りに (ーー;)

#4では

>回答した数式は、数千行程度でしたら持ちこたえます。
>いったいどんな操作をしてるんですか。

なんて逆ギレ(?)してるけど、
この案件で数千行を2回ずつCOUNTIFで舐めようなんて

 【 いったいどんなセンスをしてるんですか 】

--------------------------

#5さん、#6さんに票が入ってるので、わたしも入れようと思ったら…

わたしでした orz

って、よく見たら#5さん違うし o.......rz

--------------------------

わたしなら、見出行ある前提で、
 =IF(A2="aaaaa",0,IF(A1="bbbbb",1,B1))
かな。

一番素直な気がするんだけど???

qa7680519: 長い (ーー;)

  • _Kyle(1291004)
  • 2012/09/09 (Sun) 19:39:55
■多数xlsファイルから数字を吸い上げて統計
http://bekkoame.okwave.jp/qa7680519.html

#1氏のピントがあまりにずれてるので
つい回答しかけたんだけど、質問者が地雷っぽいので自重。

 # もしかしたら日本語に少し不自由なだけかもしれないけど。

以下ボツ原稿…ではないです。
そもそもたいしたハナシではないので。

------------------

キーが不統一なデータの「名寄せ」的な処理って
データ整形課題の一つとして普通にあるよね。

 # わたし、一時期その手のことばっかやってた気が…

 # 一度でもアレやると
 # 「名前」でデータ管理しようなんて二度と思わなくなるよね。
 # 特に人名はね。
 # 表記が揺れるし、動くし、同姓同名も普通に思うより多いから。

とりあえず

 >間違ったデータの統一だけは
 >あなたの手作業で行ってください。

なんて投げ出しちゃいかんよね、事務屋的には。

------------------

一般的な(?)手法としては

Step1.モデル名を判断できる部分を機械的に切り出す

 …というより「判断に関係しない部分」を削除するニュアンス。
 ここはまぁ、実データみてみないことにはどうにもできんけど。

Step2.文字列操作で機械的に整形

 SUBSTITUTEとか、ASCとか、UPPERとか、CLEANとか、TRIMとか
 使って、余分な記号を削除&文字表記の揺れを吸収。 

Step3.LOOKUP系関数で一意な統一コードに置換

 予め、「別表記」⇒「統一コード(or標準表記)」の対応を列挙しておいて
 別表記をキーに統一コードを引く。

こんなかんじ?

------------------

「間違ったキーから正しいキーを引く」というのは
もしからしたら、人によっては
ちょっとコペルニクス的…つかコロンブス的かも?
 
「モデル名に特定の文字が含まれていたら…」
みたいに、部分一致で考えるのが素朴な発想だけど
高々十数店,15モデルだしね。

文字列操作でヴァリエーション減らした上で
全部列挙しちゃった方がたぶん早いよね。

「モデル名がN文字一致したら…」
みたいに、近似検索で考える人も時々いるけど
意外と処理が面倒な上に、誤判定多いので普通実用にはならない。

あとやれるとしたら

・候補を絞りきれない場合に、ドロップダウンリストで選択
とか
・ユーザの判断を記憶して、対応表に自動追記
とか

でも、高々十数店,15モデルだしね。

------------------

余談1

#1氏

 >>順番の並べもそれぞれです。

 > この程度はどうとでもなります。

そうぢゃないだろwww

「もし並びが決まってるなら、表位置で順に引けるけど…」
ってハナシだろ!

「並べるのは簡単です。まず表記を統一してください。」
って、一休さんの頓知噺ぢゃないんだから……(ーー;)

------------------

余談2

#1氏

 >>各モデルの名前表記は統一されないし

 >こちらはダメダメですね。

んっと、そうかしら?

講師系・コンサルタント系の人って
二言目にはシステムの統一と標準化を言うけど、
ソレって生産性にかなり響くよ、【ネガティブに】

ローカルな状況に最適化されてるシステムを統一すると
システムや様式が最小公倍数的になって肥大化するし
個々のローカルな状況でミスとロスが発生するよね。
 # ついでに不平不満も

たとえば、

[HOGE1234]シリーズに[HOGE1234Bk]と[HOGE1234Bl]という二つのモデルがあって
ある支店では[HOGE1234Bl]を取り扱っておらず
そこのバイトは[HOGE1234Bl]というモデルの存在すら認知してなくて
[HOGE1234]といえば必然的に[HOGE1234Bk]のことだと思ってるのに
テンプレの集計表に、
[HOGE1234Bk]と[HOGE1234Bl]それぞれ枠や選択肢があったら絶対ミスるよね。
 # つか、現地サイドにしてみれば、罠みたいな仕様よね。

毎月「扱ってないモデルの売上げ」をゼロと記入させるのも無駄っぽいしね。
かといって未記入で提出させると、記入漏れと区別つかないしね。

海外の支店であれば、本店と同じモデル名で販売してるとは限らんしね。
「現地販売モデル名」⇔「本社標準モデル名」の対応を
いちいち現地雇用の事務員に叩き込むのって
時間と人件費の無駄だしね。絶対ミス出るしね。
 # 標準モデル名にカタカナとか使ってあったらどうすんだwww

「モデル名ではなく一意なモデルコードを記入スベシ!」って
講師系・コンサルタント系の人は言うだろうけど
それは「高水準言語/アセンブリ言語」みたいなハナシでね。
内部処理ならともかく、入力の段階でコード使えってのは
相応の教育と熟練とチェックが必要になるので、時間と人件費の無駄。
 # つか、ヒューマンエラー激増するよね、きっと。

もちろん最終的には、統一・標準化する必要はあるけど
結局【どの段階・レベルで統一・標準化するか】ってハナシでね。

一般に
組織の中央に行くほど、情報が多くリソースも大きくスキルも高いのに対し
組織の末端に行くほど、情報が少なくリソースも小さくスキルも低いんだから

「末端では、個別の状況に応じて好きにやらせて
 中央に情報が来た段階で一括して統一・標準化」

ってのが「効率的」だと思うんだけどね。……末端の事務屋的にはw

 # 「この枠ってなんスか?」

 # 「あーソレね、
 #  前任者から引き継いだだけで、わたしもよく知らないんだけど
 #  北陸かどっかでは****とか****みたいな区分があるんだって。
 #  ウチは全部「3」って入れとけばいいから」

 # 「とにかく全部「3」で良いんですね。
 #  ちなみに、「2」って入れたり、入れ忘れたりしたら
 #  マズいことになったりします?」

 # 「…すごくマズいことになる。憶い出させないで。 orz」

qa7648349

  • _Kyle(1291004)
  • 2012/09/09 (Sun) 03:34:14
■ISBLANK、COUNT等の数式について
http://bekkoame.okwave.jp/qa7648349.html

#7さんのオススメにしたがって(?)
CHOOSEとMODを使って書いてみた。

=CHOOSE(ROUND(MIN(INDEX(MOD(B$1:B$3-$A4,999),),0.04)*100+1,),"○","●","◎","△","")

あんまキレイじゃないね。CHOOSEだと演算誤差対策要るし。

 # INDEXの第2,第3引数は補正かかるのに、
 # CHOOSEの第1引数は補正かからないって、
 # どういう仕様なんだろね、まったく (ーー;)

=INDEX({"○","●","◎","△",""},MIN(INDEX(MOD(B$1:B$3-$A4,999),),0.04)*100+1)

うん、こっちのが素直な気がする。
てか、よく見るとコレってジツはVLOOKUP課題??

まぁ、わたしは別に#3の

=IF(OR(COUNT(B$1:B$3)<>3,$A4=""),"",IF(COUNTIF(B$1:B$3,$A4),"○",IF(COUNTIF(B$1:B$3,$A4+0.01),"●",IF(COUNTIF(B$1:B$3,$A4+0.02),"◎",IF(COUNTIF(B$1:B$3,$A4+0.03),"△","")))))

でもいいんだけどね。
わたしが使うわけじゃないし。いつものに呪文に較べれば比較的短いし。

ところで
質問文の数式だけど、下はともかく、上の方は
【セル位置の設定が参考画像と違う点を別にすれば】
#3と同じ結果が返る気がするんだけど…。

演算誤差の問題か、でなければ「実は絶対値で判定したかった」とか?

 # 実は絶対値判定のがラクなんだけどね。

qa7683405: 確認(?)してみた

  • _Kyle(1291004)
  • 2012/09/08 (Sat) 00:38:01
うん、普通にエラーになりますね。
(Access2007で挙動確認)

コントロール名記述ミス
 ↓
コントロールがない
 ↓
未コンパイルで実行
 ↓
実行時エラーでコンパイルエラー

でFA?

----------------------------------

だ、け、ど…

Accessだと、Textプロパティって
個別にSetFocusしないといじれない雰囲気??

スルーされてたのは

 ・Accessでは根本的に動作しないコードだから???

「どこが悪いとか、そういうレベルのハナシじゃねーよ」
な状況だったかな?? 

ん~、深入りするのはやめとこ。
そもそもわたし、Excelのフォーム周りもよくわかってないし(ぉ

re3:qa7683405

  • end-u(1037781)
  • 2012/09/07 (Fri) 22:26:07
>なときありますよね。…ない?
ぁーあるある :)

ん?sp1ってそんな挙動だったっけ?
「ごめんちょっと貸して」
..5分経過
「げっ。sp1じゃエラーだ..orz」
#きっと周りは迷惑してるw



>って、もしかして、Accessだと通ったりとかするんですか????
どうなんでしょうね..
AccessVBAはまるでわかんないですけど
私もコントロールが無ければ事前コンパイルでエラーになるのは一緒だと思います。
今回は黄色くなってるから実行時エラーですね。
事前コンパイルしてないんじゃないでしょうか。
#実は私、あまりしない方。

re2:qa7683321,qa7683405

  • _Kyle(1291004)
  • 2012/09/07 (Fri) 21:40:26
>qa7683321

おっと。

わたし過去質確認もせず確信しちゃってました^^;;;;;;;;
気をつけないと…。

------------------------------

>qa7683405

あ、こちらはわたしもAccessだろうと思ったので
それでスルーしようかとも思ったんですが
 # ココのコンパイル云々のハナシはExcelVBA前提ですけど。
 # AccessVBAで事前コンパイルするのがふつーかどうかは知らない。

"DemondBox"が目に付いて

「ExcelだろうがAccessだろうが
 コントロール名マチガエたらコンパイルエラーになるよね?」

な判断で…。

補足要求…というより人柱? www

って、もしかして、Accessだとそれでも通ったりとかします????

---------------

 >#ちなみにワタシのは緑 :)

目にやさ……しい??

回答するとき、
「あれ? この設定ってデフォだっけ?
 すみません、ちょっとそっちのPC見せてもらってもいいですか?」
「????」
なときありますよね。…ない?

re:qa7683321

  • end-u(1037781)
  • 2012/09/07 (Fri) 20:57:09
んんー・・・VBの話かと思ってました。
でもマクロと言えば ExcelVBAなんでしょうね。
別名保存だし。
でも#1さん、確認するまでもなく確信してらっしゃるのかしらん?

#追)ぁ、7681008他一連のQがあるからなのね..なるほど。



qa7683405 こっちは CurrentRecord ..見てハナからAccessかなーと思ってました。

#先入観で人間堅くなってる?ヤバいなぁ..orz
#ちなみにワタシのは緑 :)

qa7683405: コンパイル?

  • _Kyle(1291004)
  • 2012/09/07 (Fri) 16:34:49
■VBAコンパイルエラー
http://bekkoame.okwave.jp/qa7683405.html

最初、
「黄色になるんだったら
 コンパイルエラーぢゃなくて実行時エラーぢゃね?」
って思ったけど
「実行時エラーでコンパイルエラーがでる」
こともあるか。

わたし基本的にコンパイルする人なんだけど
もしかして、コンパイルせずいきなり走らせちやうのが普通?

常連回答者で「そんな機能知らなかった」ってノタマッタ人もいたし
ExcelVBAの事前コンパイルって
基本、エラーチェック以上の利点ないしね。

それに、普段日常的にコード書いてる人なら
コンパイルエラーなんて出さないんだろうし(?)

小文字のまんま投稿する人もいるしね。

 # 「わざわざ小文字に直してる」ような気がしないでもないけど。
 # なんとなく、性格的に。

---------------------------

回答ついてなかったからつい拾ったんだけど
スルーされてたのは

 ・"初心者"だから?
 ・環境書いてないから?
 ・回答しようのない質問だから? ←それ拾うわたしって…
 ・お礼率低いから?
 ・ギャンブルする人だから?

 ・全部?

Officeカテの回答者って、品行方正な事務屋さんが多いから(?)
ギャンブル系の質問してると、それだけで印象悪くなるよね。

---------------------------

あと、なんか医療関係っぽい雰囲気だけど
そういうところのシステムを"初心者"がいじってるのって
外部の第三者的にはちょっと怖いよね。

「患者名と処方のレコード一つずれてました。てへっ」

みたいな…(ーー;)

qa7683321: 「できない」と答えるお約束

  • _Kyle(1291004)
  • 2012/09/07 (Fri) 16:24:34
■VBマクロで他のマクロを削除したい
http://bekkoame.okwave.jp/qa7683321.html

んっと、できるけど。

この場合は「できない」ってことにしといた方が良いよね、やっぱ。
#1さんのアプローチが、まぁ、標準的なんだろうし。

「できますよ」って回答つきそうな気もするけど…。

---------------------------

つか、単にマクロ削除するだけなら
xlsx形式で保存すれば…なオチでなくて?

配布や保安の問題ではなくて、一部のマクロのみ無効に…
ってことなら、適当な場所にフラグ用意して保存前にフラグ倒して
「フラグ倒れてたらイベント回避もしくはMsg」
みたいな方向で考えるなぁ、わたしなら。

ドキュメントのプロパティにユーザ設定項目としてフラグ用意すれば
普通気付かんし、いじられることもまずないし
いざというとき、トラブル対応しやすいし。

何かの拍子に「雛形」消されちゃって
「配布版から雛形復元しなくちゃ」な状況もあるしね。

オーソドックスなやり方かどうかはしらんけど。

re2:qa7680773

  • _Kyle(1291004)
  • 2012/09/06 (Thu) 00:38:16
わたしも何度も引っ掛かってますけど、
質問文のコードから
要求仕様とかスキルとか、がんばって読み取るわけですから
コピペならコピペって書いといてくれなきゃ…ですよね。

要求仕様さえハッキリしてれば
別に<参考コード>なんてなくても
むしろスクラッチからちゃちゃっと書いた方が早いわけですし。
 # ↑ホント?

re:qa7680773

  • end-u(1037781)
  • 2012/09/05 (Wed) 21:48:03
>要求仕様推測の参考にはしない方がよさそうですね。
別スレにあったんですか...orz
まあ、でも
>なんとか自分で解決していきたいと思います。
その姿勢や良し。ですな。(ビミョーに上からry
追加質疑があれば応えるつもりもないではなかったですけど。
頑張ってください。(コザルさん?

qa7680773

  • _Kyle(1291004)
  • 2012/09/05 (Wed) 01:50:14
眠い ← 寝ろよ

>『指定した状態』とは?

あー、わたしは

・シート名  固定
・ファイル名 固定
・フォルダ  不定
・集約先   未定

と読みましたけど…違うかな? うょしくどつし

『指定した状態』=『対象ブック名×4をリテラルで埋め込んだ状態』

もしそうなら…
・フォルダ名に規則性があるなら生成/無いならダイアログ選択
・適当な場所に新規ブックを作成
・当該フォルダの4ブックの対象シートをそれに集約
ですかね。

なんか、質問者さんの要求仕様がまだ固まってない雰囲気?

サンプルコードは
「自分で試してみて上手くいかなかった」コードではなく
http://www.excel.studio-kazu.jp/kw/20040915105039.html
をまるっとコピペした元コードの方なので
要求仕様推測の参考にはしない方がよさそうですね。

 # なんでコードと違うページのリンク貼るかな?

 # でも、参考サイトの「マルチポストに関する議論」がちょっと面白かった。

qa7668352 :(7) みじ(r

  • _Kyle(1291004)
  • 2012/09/02 (Sun) 00:30:45
ん~、なんであんなふうにしてたかな。
われながら不思議 (ーー;)

で、

■みじ(r
-----------------------------------------------
Sub t2()
 Dim FS As New FileSystemObject, sA(1, 99999)
 sA(1, 0) = 1: sA(0, 0) = "D:\hoge"
 Do Until j < 0
  i = sA(1, j): Set mF = FS.GetFolder(sA(0, j))
  r = r + 1: Cells(r, i) = mF.Name: j = j - 1
  For Each mO In mF.SubFolders
   j = j + 1: sA(0, j) = mO.Path: sA(1, j) = i + 1
  Next
  For Each mO In mF.Files
   r = r + 1: Cells(r, i + 1) = mO.Name
  Next
 Loop
End Sub
-----------------------------------------------

 # ヤメレ

ぃゃ、これはホントに冗談なんですが
正直、この程度のコードでもやれるというのは想定外でしたね。

う~ん、選択肢としてアリなのか?(ぇ

いや、↓のはなし。

「ディレクトリ舐めたいけど再帰するのはめんどい」 なときに
ちょこっと添えるサブとしては意外と使い出があるかも??

書出時間無視すれば、思ったほど遅くないし
ファイル・フォルダ名で検索や抽出するなら
XPのエクスプローラ使うより速い気が…w
 # つか、例の犬遅すぎ

■test_120901_3:変数名がやっぱ気になる
http://abyssinia2010.web.fc2.com/qa7668352/test_120901_3.txt

まぁ、
あらかじめ作ったものをアドイン的に使うなら再帰に較べて利点ないですし
もし本気で使う気なら、
・パーミッションとか
・特殊フォルダとか
・不正なファイル名とか
・探索中の改変とか
わたしの苦手なあれやこれやに対応しなきゃならんのでしょうけど…。

qa7668352 :(6) やっぱ変だった orz

  • _Kyle(1291004)
  • 2012/09/01 (Sat) 22:39:08
あ、やっぱ変なことしてた。

>階層まで管理する場合はちょっと複雑になるんですね。

複雑怪奇なのはわたしのアタマの方でした。
未処理フォルダのパスと階層をセットで覚えておけば…ですね。

 orz

■test_120901_2:やっぱ変なことしてた
http://abyssinia2010.web.fc2.com/qa7668352/test_120901_2.txt

Re2: qa7668352 :(#)

  • _Kyle(1291004)
  • 2012/09/01 (Sat) 22:15:43
ども。お付き合い頂いて大感謝です。(T_T)

>個人の志向で意見別れる

そですねー。

大きな静的配列をいきなり宣言するとメモリ厨に怒られるし
動的配列をちまちま拡げると速度厨に笑われる…みたいな。

Collectionはまったく念頭になかったんですが
なるほど、そういう選択肢もありますよね。

 # Dictionaryはちょっと考えたんですけどね。
 # ↑なぜDictionaryが先?? >わたし

わたしはどっちかっつーと、
メモリあんま気にしないステップ厨なので
手元であらかじめスケールが読めるなら
「大きな静的配列を…」ですね。

---------------------------

>どうせ配列にファイルリスト取得するなら単純にIndexを

最終的に「検索」するのが目的なら出順とか関係ありませんし
幅優先探索で片っ端から処理していけば…ですよね。

わたしの場合は
「ふつー再帰でやるところをループで」という思いがあったのと
前回qa7621154の出順調整でてこずったトラウマで(^^;;;;
深さ優先探索にこだわってみました。

 # でもこの覚え方はやっぱヘン
 # もっとスマートにやれそうな気が…

---------------------------

>try()

鋭意解読ちう

>If ret = "." Or ret = ".." Then

みたいなところでいつもしくじるんですよね。

 # あ、そういやTimerってSingleよね(ぉ
 # timeGetTime使うときもあるから
 # タイムカウンタいつもLongで宣言しちゃう
 # 恥ずかしいから気をつけよう

---------------------------

P.S.

↓で言ってる

>切り刻まれそうな悪寒

というのは
「回答に使うと切り貼りされて動かなくなりそうな悪寒」
という意味です、念のため。
添削は大歓迎なので、もしお気づきの点がありましたら
好き放題切り刻んじゃってください <(_ _)>

Re: qa7668352 :(#)

  • end-u(1037781)
  • 2012/09/01 (Sat) 19:26:31
突っ込みどころは無いです。流石ですね。

無理矢理こじつければ
ReDim Preserve で漸増がいいのか、
大きめに配列サイズ取ったほうがいいのか、
はたまたコレクションなど使ったほうがいいのか、
これは個人の志向で意見別れるところかもしれませんね。

そう言えばFileSystemObjectを使ったファイルリスト取得の非再帰版ってあまり見た事ないですね。
..という事で作ってみようかなーと思ってたとこでした。
階層まで管理する場合はちょっと複雑になるんですね。
私は、どうせ配列にファイルリスト取得するなら単純にIndexを覚えておけばいいかな、程度に考えてました。
なのでPathのみ取得のアプローチです。

Sub try()
  Dim sPath  As String: sPath = "C:\Doc\" '対象パス
  Dim sChk  As String: sChk = "?"     '検索時
  Dim fCol  As Collection: Set fCol = New Collection
  Dim dCol  As Collection: Set dCol = New Collection
  Dim fList() As String
  Dim fPath  As String
  Dim ret   As String
  Dim cnt   As Long
  Dim i    As Long
  Dim j    As Long
  Dim flg   As Boolean

  Dim t As Single: t = Timer

  flg = True
  On Error GoTo ErrH:
  Do
    ret = Dir(sPath, vbDirectory Or vbReadOnly _
           Or vbHidden Or vbSystem)

    Do Until Len(ret) = 0
      fPath = sPath & ret
      If GetAttr(fPath) And vbDirectory Then
        If ret = "." Or ret = ".." Then
          flg = False '除外
        Else
          i = i + 1
          dCol.Add cnt + 1
        End If
      End If

      If flg Then
        cnt = cnt + 1
        fCol.Add fPath
        '検索時
        'If InStr(1, ret, sChk, vbTextCompare) Then
        '  Debug.Print fPath
        'End If
      Else
        flg = True
      End If

      ret = Dir()
    Loop

    j = j + 1
    If j > i Then Exit Do
    sPath = fCol(dCol(j)) & "\"
  Loop

  ReDim fList(1 To cnt, 0)
  For i = 1 To cnt
    fList(i, 0) = fCol.Item(i)
  Next
  'Sheets.Add.Range("A1").Resize(cnt).Value = fList
  Debug.Print cnt, Timer - t
  Exit Sub
ErrH:
  Debug.Print fPath
  Debug.Print Err.Number, Err.Description
  Resume Next
End Sub

ぁ、Dir関数版です。(FSO版もあるけど基本は同じ感じ)
パス名の長さに制限があるようだし、文字によってはGetAttr関数のところでエラーになっちゃいます。
実用的じゃないのでボツシリーズですw

qa7668352 :(5) コードらしくなった?

  • _Kyle(1291004)
  • 2012/09/01 (Sat) 04:41:50
既に質問とは関係ないんですが…。

■test_120901:りふぁくたりんぐしてみた
http://abyssinia2010.web.fc2.com/qa7668352/test_120901.txt

ちったぁコードらしくなった?

 # ジョークコード飾って何がしたいの? >わたし

★既知の仕様

 ・ルートディレクトリ指定するとマズい
 ・規模の大きいフォルダを探索するとメモリ的にマズい
 ・同一階層ではフォルダよりファイルを先に表示
 ・フォルダ同士では、普通の探索とは逆順に表示
 ・遅い

--
■ts:短くし(r
http://p.tl/Q0fa
----------------------------------

■Sample:検索版
http://abyssinia2010.web.fc2.com/qa7668352/sample.txt

お義理(?)で。 切り刻まれそうな悪寒。

----------------------------------

…寝よう。

qa7668352 :(4) ループで探索

  • _Kyle(1291004)
  • 2012/09/01 (Sat) 00:17:02
回答用というわけではなく、例によって【冗談】で

■Test120831:ループでディレクトリ舐めてみた
http://abyssinia2010.web.fc2.com/qa7668352/test120831.txt

ん~、実に饂飩。あってんのかな?

数はあってるみたいだけど、落とし穴がありそうな悪寒。
突っ込み・ダメ出し歓迎シマス。

 # とりあえず、ルートディレクトリ指定するとマズい模様

にしても、変数の数と変数名が…。

 # 追記
 # 未処理フォルダのフルパス覚えとくのって、
 # メモリ的にエレファントだよね
 # でも、つないだり削ったりすんのめんどい(ぉ

 # 追記
 # あ、FSOってDimで作ってるからNothingしても意味ねーw
 # つか、そもそも要るの? ってハナシもあるよね
 # "怒られる"から、よそ行きのときは書くことにしてるけど。

qa7668352 :(3) 

  • _Kyle(1291004)
  • 2012/08/31 (Fri) 14:47:12
せっかく「支援」していただいたんですけど
なんか、めんどくさくなっちゃいました。

別に指名されたワケじゃありませんけど
「回答しなきゃ」って思うとモチベーション下がりますよね。

でも、てきとーな補足要求と
さらにてきとーなコードでお茶濁すのって… orz

まぁ、補足がついてからあらためて考えよっと。

-----------------------------

あ、「教授」系の原稿消えちゃってる。ま、いっか。

qa7668352 :(2) 「キメウチ」?「教授」?

  • _Kyle(1291004)
  • 2012/08/31 (Fri) 02:06:42
※「Re: qa7668352」を拝見する前に書いたものですが一応

ん~、ときどき

 「ご教授ください」ではなくて「ご教示ください」でしょ!

って突っ込みする人がいるけど
これ対応しようと思ったら、
ほんとに"教授"することになっちゃうよね。
超えるべきハードル・確認すべきポイントが多すぎ。

質問者さん、頭は悪くない感じなんだけど
基礎的なスキルが足りてないせいで
今一つ二つポイント掴めてない雰囲気だし。

前回みたくキメウチブラックボックスマクロでやるには
いかんせん情報が足りん気がするし…。

でもなぁ
「キメウチやっつけマクロ」なら書けるけど
「教授」するような知識やスキルは逆立ちしてもないのよね。

ボツ原稿
----------------------------------------------
以下、批判や非難ではなく
「助言」と受け取っていただきたいのですが。

"初心者"のまま
コードの切り貼りや質問を重ねるよりも
一度入門書をきっちり読みきって
"中級者"として課題に取り組まれた方が
むしろ結果として早く解決が得られるのではないかと思います。

たとえば、下記はかつてわたしが勉強した本(の新しい版)ですが
2~3度週末を潰す程度の覚悟を決めてやりきれば
一通りのことは【自力で】できるようになるハズです。

わたし自身、相当無茶をやらされたクチですから
早く結果を得たいと焦るお気持ちも良く判るのですが
「急がば回れ」という言葉もあります。

前回のご質問から既に3週間経過していますが
3週間というのは、やりようによっては
"初心者"が"中級者"になるのに十分な時間と思います。

これから先の3週間をどう過ごされるかで
今後の成り行きが大きく変わってくると思うのですが…。

■やさしくわかるExcel VBAプログラミング 第4版
http://www.amazon.co.jp/dp/4797364351

ご参考まで。
----------------------------------------------
(ぁ、ぃゃ、真面目な原稿も一応書いてます…現在進行形でw)

VBAに限らず数式でもそうだけど
『逆引き大全 三千六百万の極意』みたいなのを後生大事に抱えて
「切り貼りコーディング」から一歩も動かない人いるよね。

もちろん、わたし的には
「"素人"ならそれでもいいんぢゃね?」
なスタンスだけど
"素人"の手には余るような課題に対応しようと思ったら
逆引きや切り貼りではやっぱり限界があるわけで。

"素人"ではなく"初心者"を名乗るなら
基礎的なことを一度ちゃんと勉強した方がきっと早い。

30時間もあれば一通りはやれるようになるわけだから
土日土日8h×4で2週間もあれば"中級"を名乗れるよね。

まぁ
「一通り」とか「中級」の定義も色々だし
わたしみたいに、いつまでたってもリファレンスを
手放せないタイプもいい加減アレだけどね。

 # デスクの上に『大全』があるか『辞典』があるかで
 # 性格が判るよねw
 # 性別が判るというウワサも…。←偏見?

Re2: qa7668352

  • _Kyle(1291004)
  • 2012/08/31 (Fri) 01:46:41
うぉっ、支援(?)感謝です。

ファイル操作まわりって
実務経験ほとんどないので
正直途方にくれてたんですよね。

 # ファイルそのものは腐るほどあるんですけど
 # 場所も形式も、自動化できるほど規格化されてない
 # …つか、同じ文書でも発出時期や発出部署によって
 # 様式やファイル名どころかファイル形式すら違うという…orz
 # xls,xlsx,doc,docx,pdf,あげくにjtdって…いやがらせかっ!

---------------------

>使わないほうがいいでしょうね..

ですねー。orz

「要求仕様確定させるために」
当座とりあえずFileSearchで…とも思ったんですが
それで動いたらきっとそれっきりになっちゃいますしね。

---------------------

>フォルダ構成としては

あー、わたしの当初の読みとしては
「対象フォルダが"日付フォルダ"直下にあると限らない」のかな?
と思ってたんですが
もし直下にあるなら、再帰しなくても二重に回せば…ですね。

---------------------

>例えば "12345_" が一意なら

そこが謎でして。

前回は、一意でなくて
「一番下にあるもの」=「下から見て最初にヒットしたもの」
でしたけど、今回はどうなんだと。
もし「ヒットしたうち最新の日付フォルダの中のもの」ってことなら
また一手間かかりますよね。

それから、フォルダ名の形式についても
今回サンプルが示されてませんし
最悪終端のアンダースコアが無い可能性も。

あと、前回は(条件付きの)前方一致検索でしたけど
パスを部分一致検索すると
"*1234_*"で"hoge\51234_piyo"がヒットしそうな悪寒が。
始端のチェックも要りますよね、たぶん。

桁数で切り分けて
"\B1234_"

"\56789_"
で検索とか?

---------------------

>もっぱらDirコマンド使ってしまいます。

Private Const fName = "\tempout.dat" '一時作業ファイル名

に疑問を抱きつつ、
途中までは「ふむふむナルホド」って読んだんですが…

arg = "dir " & kPath & " /a:d/b/s"
CreateObject("WScript.Shell").Run

で目が点に…。

Dir関数ぢゃなくてDirコマンドの方なのね。
つか、Dir関数なわけないよね。  o....rz

Re: qa7668352

  • end-u(1037781)
  • 2012/08/31 (Fri) 00:03:09
>でも、FileSearchって確か、Excel2007以降ではアウトなんですよね?
です。
使わないほうがいいでしょうね..

フォルダ構成としては

基フォルダ
├カテゴリ1
│├20120101
││├B1234_ABC-TOUKYOUTONAKANOKU
││└(ID番号を含む名前のついたフォルダ)
│├20120102
││├12345_DEF-TOUKYOUTOTOSHIMAKU
││└(ID番号を含む名前のついたフォルダ)
│└(日付毎に作成されたサブフォルダ(1500~2500))
├カテゴリ2
│├20120201
││├912345_FED-TOUKYOUTONAKANOKU
:::
:::
└カテゴリ5
 ├20120501
 └(日付毎に作成されたサブフォルダ(1500~2500))

こんな感じなんでしょうか。
数字+"_"、例えば "12345_" が一意なら、ダイレクトにフォルダ検索しにいったほうが良さそうなんですけど...

私も再帰苦手なのでもっぱらDirコマンド使ってしまいます。
試しに
'-------------------------------------------------
Option Explicit
Private pathAry 'パス配列保持用
Private Const kPath = """C:\Doc\work\""" '基フォルダのパス
Private Const fName = "\tempout.dat" '一時作業ファイル名
'-------------------------------------------------
Sub test()
  Dim inp As String '検索値
  Dim out As String '対象パス

  inp = "12345"
  out = GetPath(inp)
  If Len(out) > 0 Then
    MsgBox out
  End If
End Sub
'-------------------------------------------------
Private Function GetPath(ByVal inp As String) As String
  Dim x

  If Not IsArray(pathAry) Then
    NewAry
  End If
  If UBound(pathAry) < 0 Then
    pathAry = Empty
    MsgBox "-error-"
  Else
    x = Application.Match("*" & inp & "_*", pathAry, 0)
    If IsNumeric(x) Then
      x = x - 1
      Debug.Print x, pathAry(x)
      GetPath = pathAry(x)
    End If
  End If
End Function
'-------------------------------------------------
Private Sub NewAry()
  Dim wrk As String
  Dim arg As String
  Dim v() As String
  Dim n  As Long

  wrk = Application.DefaultFilePath & fName
  arg = "dir " & kPath & " /a:d/b/s"
  CreateObject("WScript.Shell") _
    .Run "%ComSpec% /c " & arg & ">" & wrk, 0, True
  n = FreeFile
  Open wrk For Input As #n
  v = Split(StrConv(InputB(LOF(n), #n), vbUnicode), vbCrLf)
  Close #n
  Kill wrk
  pathAry = v
End Sub
'-------------------------------------------------
こう書いてみたけど..
質問者さんにとってはムリありますよねえ..
これも ボツ回答シリーズ 行きか...orz

qa7668352 :ん~

  • _Kyle(1291004)
  • 2012/08/30 (Thu) 05:42:00
■初心者のExcel2003VBA フォルダの質問
http://bekkoame.okwave.jp/qa7668352.html

これは……
わたしもちょっと読解力に難アリな感じなんですが(苦笑
追加とか要件変更と言うより【別件】な気が…ww

前回のは
「予めシート上にリストアップされたパス一覧から前方一致検索して転記」
でしたけど
今回のは
「直接ディレクトリを検索してパスを取得して新規フォルダにコピー」
かしら???

ファイル操作関係は基本守備範囲外なんで
できればスルーしたいところなんですが、
行き掛かり上そういうわけにもいかんですよね。orz

でも、FileSearchって確か、Excel2007以降ではアウトなんですよね?
(「確か」とか言ってる時点でダメだろw)

質問者さんはExcel2003ってはっきり書いてますけど
2012年現在で、単発課題ならいざしらず
業務用定型処理マクロにFileSearch使うのはマズいですよね。

…となると再帰?
わたし、数理再帰は好きですけど決して得意なわけぢゃないですし
ディレクトリ舐めるのははっきり【苦手】なんですよね。
 # 例外処理でいつもしくじる

いずれにせよ、
 If Len(i) <= "5" Then
とか
 Dim Count_RowA, Count_RowB As Long
とか
書いてらっしゃるところみても、どうも背伸びしすぎな感が…。

=============================================
もっとも、わたしの場合

Sub test()
 MsgBox "Hello World!"
End Sub

の【次】に書いたコードが

---------------------------------
VPNサーバ上のテーブルを
定期的にWebクエリで読んで
整形して転記して
差分チェックして
テーブル情報を元に
新規ファイルを
ダウンロードして
リネームして
アラーム鳴らして
属性別に各部署各端末に
CDOでメール添付配信
---------------------------------
だったワケですがwww

というより↑やるためだけにやっつけでVBA覚えたという…。

 # 無茶しやがってww >わたし
 # でも全部自力でやったしな。
 # 一応動いてたしな…わたしがいる間はw

 # ↑昔話が多いのは悪い傾向 orz

qa7621154 :(7) まさか…

  • _Kyle(1291004)
  • 2012/08/24 (Fri) 19:28:47
■共通の値をもつ座標の組み合わせについて
http://bekkoame.okwave.jp/qa7621154.html

ま、まさか、放置する気ぢゃないよね????

Cコードの運用にてこずってるだけだよね????


>それから、ポイントについては
>【くれぐれもお間違えのないよう】
>よろしくお願いします。
>これも一応念のため。(^^;;;;;;;;;;;;;;

>横入り」とか「後出し」の是非はまた別の問題でして^^;;;;
>締切りの際は【くれぐれもお間違えのないよう】
>重ねてお願いします。 <(_ _)>

ちゃんと伝わってるよね???????

 # つか、そもそも余計なこと書いたのがまずかったんぢゃ…
 # いやだって、この流れで万一こっちについたら洒落んならんだろ
 # ハッキリ書くわけにもいかんし、「間違えるな」としか書きようないだろ
 # (「BAは辞退します」って書いちゃう人もいるけどね)

------------------------------------

で、

■sample19 (ぇ
http://abyssinia2010.web.fc2.com/qa7621154/sample19.txt

出順調整をコード上でやるバージョン。
Sortメソッドを回すというのはさすがにね^^;;;;;;;;

あ、いや、さすがに回答する気はないけど
デスクトップに残ってたので。

■■■■■■■■ 終 了 ■■■■■■■■■■

ということで。でも饂飩。orz

qa7610896 :謹慎中

  • _Kyle(1291004)
  • 2012/08/19 (Sun) 01:49:30
■入力した数値になるよう組み合わせを計算したい
http://bekkoame.okwave.jp/qa7610896.html

たまたま見つけたんだけど
スルー力を発揮する場面よね。

いろんな意味で(^^;;;;;;;;;;;;;;;

個数制限が付いてるなら、高々100^5=10^10通り。
1185672さんのおっしゃるとおり
ゴリゴリやるだけだしね。

qa7639877 :なまあたたかく

  • _Kyle(1291004)
  • 2012/08/16 (Thu) 19:04:23
■エクセルで数字を千分の1にして貼り付ける方法
http://bekkoame.okwave.jp/qa7639877.html

#2,4 翡翠

プロフが事実なら
60過ぎてこのテンションと素行は色々マズいだろ (ーー;)

…って思ってたら、某所で随分叩かれてるのね。
以後なまあたたかく見守ることに。

qa7621154 :(6) ついに見かねた

  • _Kyle(1291004)
  • 2012/08/16 (Thu) 09:28:47
■共通の値をもつ座標の組み合わせについて
http://bekkoame.okwave.jp/qa7621154.html

ここまできて1185672さんの堪忍袋の緒が切れたりすると後味悪いので。

>適宜修正してください。
とか
>必要なら御自分で
とか
そろそろ限界っぽかったし。


追記:
●qa7621154 :♪ 重い~、コンダァラー ♪
http://abyssinia.bbs.fc2.com/?act=reply&tid=2820395#14361949

うん、でも、まあ、いい感じの引き立て役になったかも(ぇ

qa7644747 :舟山に登る

  • _Kyle(1291004)
  • 2012/08/16 (Thu) 02:19:58
■エクセルデータ検索方法を教えてください!
http://bekkoame.okwave.jp/qa7634891.html
■ユニークキーがない場合の文字列比較について
http://bekkoame.okwave.jp/qa7636652.html
■エクセルマクロで一致データを検索
http://bekkoame.okwave.jp/qa7643546.html
■エクセルのフィルタオプションについて
http://bekkoame.okwave.jp/qa7644706.html
■エクセルのフィルタオプションの検索条件について
http://bekkoame.okwave.jp/qa7644747.html

先日来もつれてるけど、高々4項目30万件でなんでもつれるかなぁ。

質問者の腰が据わってないのが一番の原因として
100289さんも、たぶんあってるんだろうけど
質問者のレベルを考えるとちょっとツレナすぎる気も。
 # ぃゃ、この場合フィルタオプションは…

1回こっきりの単発課題なんだろうし
【 手作業で切り分けても5枚 】
なんだけどね。

--------------------------

そーいやむかし
郵便番号データをExcel2000に読み込んで変換関数作った記憶が。
…いや、「関数」ぢゃなくて「数式」でやった気がするな(ぇ

もちろん1枚には入りきらんから
[外部データの取り込み]かなんかで上一桁毎に読み込んで
数式の方もいろいろ小細工したけど、意外と実用になったような。

平成の大合併で、いろんなブックの住所データを
総チェックしなきゃならんかったのよね。

qa7639791 :悪魔の証明

  • _Kyle(1291004)
  • 2012/08/16 (Thu) 02:16:41
■アクティブのブックのインデックスを知るプロパティ
http://bekkoame.okwave.jp/qa7639791.html

#1は論外として。

「できない」「ない」って回答はしにくいよね。
かつて、好んでそういう怪答する人もいたけど。

関数系もねー
2010でまた関数増えたらしいし、新機能もあるんだろうし。

昔取った杵柄で、うかつな回答すると痛い目にあいそうな悪寒。

qa7639805 :ギャグ?

  • _Kyle(1291004)
  • 2012/08/14 (Tue) 21:36:46
■【Excel】"ランダム"で良いのが見つかりません
http://bekkoame.okwave.jp/qa7639805.html

#3 胡桃 

ギャグ??
まぁ、質問もいい加減胡乱なんだけどね。#1でFA?

「"ランダム"=公平」とか「"ランダム"=均等」だと思ってる人が多くて困る。
要件通りにやると
「同じ人が続かないように」とか「回数が偏らないように」とか必ず言われるのよね。
そりゃ既に"ランダム"ぢゃねーって。

---------------------------------------------

で、以下冗談。

常識的に最低限の要件として
「月5回以上やる不運な人が出ない」ようにするなら
 ⇒「9日毎にくじを引く」

◆表示シートC4
  =IF(INDEX(Sheet2!$B$3:$E$11,ROW()-3,INT((COLUMN()-3)/9)+1)=LARGE(INDEX(Sheet2!$B$3:$E$11,,INT((COLUMN()-3)/9)+1),MOD(COLUMN()-2,9)+1),"●","")
 として右方・下方にフィル

◆作業シート(Sheet2)B3
  =RAND()
 として右方・下方にフィル ⇒ てきとーに再計算してから値貼り付け

---------------------------------------------

本当に"ランダム"でやりたいなら

 ⇒「毎日くじを引く」

◆表示シートC4
  =IF(ROW()-3=INT(C$13*9+1),"●","")
 として右方・下方にフィル

◆表示シートC13
  =RAND()
 として右方にフィル ⇒ てきとーに再計算してから値貼り付け

qa7642179 :いくら畑が違うっつっても…

  • _Kyle(1291004)
  • 2012/08/14 (Tue) 20:11:47
■小学館のメールアドレス
http://bekkoame.okwave.jp/qa7642179.html

ん~、なんか不思議な感じ。

304753さんの「半角カナ」の件も驚いたけど
そういうことってあるのね。

---------------------------------

そういうわたしも、傍から見れば
「常識的なことがスポっと抜け落ちちゃってるのに
 本人にその自覚がないこと」
やっぱあるんだろうね。

なお
「常識的なことがスポっと抜け落ちちゃってて
 本人にその自覚があること」
なら沢山あります。^^;;;;;;;;;

qa7641606 :あとは野となれ

  • _Kyle(1291004)
  • 2012/08/14 (Tue) 19:45:55
■時刻の引き算で結果が-(マイナス)になった場合の表
http://bekkoame.okwave.jp/qa7641606.html

よくある質問とよくある回答で、
質問者さんがどうとか、回答者さんがどうとか、そういうハナシじゃないけど

 【 これってあとで絶対トラブるよね 】

わたしなら、符号列つくるなぁ。

qa7639860(再)

  • _Kyle(1291004)
  • 2012/08/14 (Tue) 19:34:02
■3個の山になっている連続数値データから各最大値を
http://bekkoame.okwave.jp/qa7639860.html

課題は面白そうでなくもなかったけど、質問者が地雷だった模様。


■一行の数値データを3行に分けてコピーしたい
http://bekkoame.okwave.jp/qa7642099.html

■開始と終了番号を指定して連続数値を入力したい。
http://bekkoame.okwave.jp/qa7642264.html

質問者が言うところの「方法」ってのは
「手法」じゃなくて「機能」のことなのね、きっと。

「一行の数値データを3行に分けてコピーする機能」
「3個の山になっている連続数値データから各最大値を求める機能」

ねぇよ!

-------------------------------------------------------

例によって冗談だけど…

B1セルに普通に入力して、下方にフィル

=MAX(INDEX((ROW($A$1:$A$9999)>LARGE(((((OFFSET($A$1:$A$9999,1,)-MEDIAN($A$1:$A$9999))>0)-(($A$1:$A$9999-MEDIAN($A$1:$A$9999))>0))<0)*ROW($A$1:$A$9999),5-ROW()))*(ROW($A$1:$A$9999)<=LARGE(((((OFFSET($A$1:$A$9999,1,)-MEDIAN($A$1:$A$9999))>0)-(($A$1:$A$9999-MEDIAN($A$1:$A$9999))>0))<0)*ROW($A$1:$A$9999),4-ROW()))*$A$1:$A$9999,))

MEDIAN以下の値をオミットして区間毎の最大値を出してるだけ。
……の割に長い orz

でも、胡桃って普段からこーゆー冗談みたいな長さの式出すよね。
たいした課題でなくても。

--------------------------

案外、実データもキレイなデータで。

=INDEX(A:A,1/LARGE(INDEX(((OFFSET($A$2:$A$9998,-1,)-$A$2:$A$9998)<=0)*((OFFSET($A$2:$A$9998,1,)-$A$2:$A$9998)<=0)/ROW($A$2:$A$9998),),ROW()))

で足りたりとかね。これは前後の行見てるだけ。

-------------------------------------------------------

低いレベルの値が長く続くような場合には、MEDIANではマズいです。
ピークの値がそれぞれ大きく違うような場合には、AVERAGEではマズいです。
ノイズが激しい場合には、前後の行見てもダメです。

いわずもがなですが、一応念のため。

qa7640307

  • _Kyle(1291004)
  • 2012/08/14 (Tue) 07:10:04
■エクセル2007のリスト入力について
http://bekkoame.okwave.jp/qa7640307.html


 

いや、コレはホントに【 冗談 】なんだけどね(^^;;;

 # 朝っぱらから何やってんだか。>わたし

qa7621154 (5)

  • _Kyle(1291004)
  • 2012/08/13 (Mon) 23:50:25
こちらもNET8秒切りました。 \(^o^)/

http://abyssinia2010.web.fc2.com/qa7621154/sample4.txt

●150×150/「1」の数4952コ/【書出なし】の場合

 Combination10   11秒
 Combination10改  8秒 (IntegerをLongに変更)
 Sample2      14秒
 Sample3      10秒
 Sample4      8秒  

-------------------------------------
Sample3 ⇒ 4 って

rsAry(j) = rsAry(j) And myDat(i, j)



If rsAry(j) Then
 rsAry(j) = myDat(i, j)
End If

に変えただけだったり。 ^^;;;;;;;;;;

当初、秒単位の争いになるとは思わなかったとはいえ、
記述端折るのって、悪い癖だよなぁ。

でも

If rsAry(j) Then
 If Not myDat(i, j) Then
  rsAry(j) = False
 End If
End If

はなんか抵抗あるんだよなぁ。
コンマ5秒ほど速くはなるけど。
やっぱそう書くべき???

う~

  • _Kyle(1291004)
  • 2012/08/13 (Mon) 20:41:53
Combination10

IntegerをLongに変えるだけでNET8秒切るよ。 orz

Sample4 鋭意検討ちゅー 

 # ↑意地張ってないであちらのコード読めよ!

ぃゃ、読むのが嫌だとか、読む気がないとかではなくて、
もちろん、読む価値がないとかではさらさらなくて、
人のコード読むと、それで納得しちゃってそれっきりになりそうなので…。

qa7621154(再々)

  • _Kyle(1291004)
  • 2012/08/13 (Mon) 20:30:16
■共通の値をもつ座標の組み合わせについて
http://bekkoame.okwave.jp/qa7621154.html

おっ、新作♪ ドキドキ……………

●150×150/「1」の数4952コの場合
 Combination08  306秒
 Combination10  123秒
 Sample2      35秒

勝った! \(^o^)/
って、あれ?  こっちは一気書き出しで、向こうは逐次書出しだから…

●150×150/「1」の数4952コ/【書出なし】の場合
 Combination08  277秒
 Combination10   11秒
 Sample2      14秒

負けてる。 (T_T)
http://abyssinia2010.web.fc2.com/qa7621154/sample3.txt
これでどおだぁ!!!!  ←なにやってんだお前

●150×150/「1」の数4952コ/【書出なし】の場合

 Combination10   11秒
 Sample2      14秒
 Sample3      10秒   

並んだ!!!! \(^o^)/ でも饂飩 orz
結果管理を二重にやってるあたりがなんとも…。
----------------------------
いや、フェアじゃないのはわかってるんですけどね。

向こうはこちらのコードもタイムも知らないけど
こちらは向こうのコードもタイムも検討できるので。
…読めてないけど(うょしくどつし) orz

「並んだ」というより「追いついた」ニュアンス?

あと
Sample2は、例によって初期化忘れのバグ持ちだったり orz
 # 直しました。
----------------------------
ちなみにわたしの使ってるダミーデータはコチラ
http://abyssinia2010.web.fc2.com/qa7621154/dat.txt
拡張子はtxtですが、150×150,矩形のcsvです。
-----------------------------
ところで

質問者さん、112×112でも5,6時間かかるって、やっぱ数式入れてるよね。
でなきゃ、条件付き書式とかイベントドリブンマクロとか?

そこだけでも突っ込もうかしら。←ヤメトケ

re:re:qa7627621

  • _Kyle(1291004)
  • 2012/08/13 (Mon) 18:17:46
>シートモジュールにでも書いてあるんですかねー…

あ!!!

それは念頭になかった。
つか、そういう挙動をするんですね。知らんかった。(ぉぃ

'-----Activeでないブックのシートモジュールに記述-----
Sub test()
 MsgBox Worksheets.Parent.Name
 MsgBox Range("A1").Parent.Parent.Name
End Sub
'----------------------------------------------------

なるほどー。参考ボタン100クリック!

ん~、方向性はあってなくもなかった…のかな? orz

===============================================

【 「初心者」だろうが「素人」だろうが
  親オブジェクトは明示的に指定すべき! 】

に宗旨替えしようかしらん(苦笑  ←節操なし

いや、↓のほうで言ってたのは
あくまで【ケースバイケース】ってことで

シートをまたぐ操作ならシートを明示しなけりゃマズいし
ブックをまたぐ操作ならブックを明示しなけりゃマズい

でも、
「隣の家に暑中見舞い出すのに、Hiroshima,Japan まで書くこたないよね」
ってハナシでした。

 # 「隣の家」が国境の向こうにあったりすることもあるけどね。
 # 気をつけよう。

re:qa7627621

  • end-u(1037781)
  • 2012/08/13 (Mon) 12:58:58
シートモジュールにでも書いてあるんですかねー…

qa7639860

  • _Kyle(1291004)
  • 2012/08/12 (Sun) 18:59:17
■3個の山になっている連続数値データから各最大値を
http://bekkoame.okwave.jp/qa7639860.html

#2,3 三毛 

…はぁ。 (ーー;)

-------------------------------

ちょっと面白そうな課題だけど
私の手には余る…というより#1氏の回答でFA?

他のアプローチとしては
・落差を見る
とか
・区間が3つになるまで徐々に閾値を上げていく
とか
・全体の最大値を取る→近傍の値をオミット→全体の…
とか?

でも、結局は「ピーク」をどう定義するかってハナシになるよね。
実データ見てみないことにはなんとも…。案外三毛の案で足りたりしてねww

>「ピーク」の意味をよく考えてデータ処理を選んでください

qa7611387

  • _Kyle(1291004)
  • 2012/08/12 (Sun) 02:31:07
■Excel2007で入力規則ユーザ定義の方法
http://bekkoame.okwave.jp/qa7611387.html

単なる技術的興味、あるいは【 冗談 】なら、
やってやれなくはない???

=IF(AND(ISERR((FIND(",,",A1))),ISERR((FIND(".",A1))),NOT(ISERR(--SUBSTITUTE(A1,",","")))),AND(INDEX(1/--MID(SUBSTITUTE(","&A1,",",REPT(" ",100)),ROW(INDIRECT("1:"&(LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1)))*100,100)>=1/25,)))

胡桃みたいになっちゃった ^^;;;;;;;;;

Excel2007で動作確認。(Excel2003でも通りますw)

qa7638313

  • _Kyle(1291004)
  • 2012/08/11 (Sat) 13:37:54
■ある文字から改行まで抽出+横方向セル参照で下フィル
http://bekkoame.okwave.jp/qa7638313.html

#1

だから、そういう要件ぢゃねーって。

>きっちり数える必要は全くありません。

>わざわざSEARCH関数など組み込んで
>無駄に数式を伸ばす必要は全くありません。

この目線の角度と思い込みの強さはまるで… (ーー;)

------------------------------------------------------
やっつけだけど

A1
=REPLACE(LEFT(OFFSET(Sheet1!$A$1,,ROW(A1)-1),SEARCH(CHAR(10),OFFSET(Sheet1!$A$1,,ROW(A1)-1))-1),1,3,"")

B1
=REPLACE(LEFT(OFFSET(Sheet1!$A$1,,ROW(A1)-1),SEARCH("●収",OFFSET(Sheet1!$A$1,,ROW(A1)-1))-2),1,8+LEN(A1),"")

C1
=REPLACE(OFFSET(Sheet1!$A$1,,ROW(A1)-1),1,SEARCH("容=",OFFSET(Sheet1!$A$1,,ROW(A1)-1))+1,"")

とか?
------------------------------------------------------
追記

あ、栗だ。おひさー。

面白いアプローチやね。参考ボタン。

qa7627621

  • _Kyle(1291004)
  • 2012/08/11 (Sat) 06:25:45
■シートの繰り返し処理がうまく作動せず困っています.
http://bekkoame.okwave.jp/qa7627621.html

なんだろなー。

別のブック見にいってるのかな。

でも、修飾子なしのRange("a2")なら対象のブックを見るんだよね。
「作業中のブック」≠「アクティブシートのあるブック」ってことある??

MsgBox Worksheets.Parent.Name

とか

For Each sh In Activesheet.Parent.Worksheets
 If sh.Range("a2").Value = "チーム" Then
  Call SHEETSET
 End If
Next

とか試させたい気もするけど、
「うまく動作しません」
とだけ返されそうな悪寒。

うまくいったらいったで、そのまま閉じられても困るし。

qa7635777

  • _Kyle(1291004)
  • 2012/08/10 (Fri) 09:18:53
■Excel マクロのメンテナンスについて
http://bekkoame.okwave.jp/qa7635777.html

これは…。(ーー;)

ブックマーク外しました。 

qa7621154(再)

  • _Kyle(1291004)
  • 2012/08/10 (Fri) 09:16:52
勝った! \(^o^)/

■Sample2
http://abyssinia2010.web.fc2.com/qa7621154/sample2.txt

手元のダミーデータで…

150×150(「1」4,590コ) を 21秒!!

100×100だと
 Sample2    3.6秒
 Combination 28.6秒

120×120だと
 Sample2    7.5秒
 Combination 53.7秒

な感じ。

「付け加えることのできる要素があればアウト」なのね。

------------------------------------------------------

ところで、質問者さんの

>132×132の表で
>1の値が入っているセルが3,878で試しましたら、
>約1時間程度で出力ができました。

っていくらなんでも遅すぎるよね。

同規模のデータ(132×132,「1」3,878コ)についてみると
わたしの骨董品みたいな環境でも

 Sample2    19.1秒
 Combination 184.0秒

分布にもよるんだろうけど、数式が入ってる気がしたので
Sample2 では Calculation 切ってみました。

…って、こっちは一気書出しだけど。
…という以前に、回答しなきゃ意味ないけど;;;

qa7628565

  • _Kyle(1291004)
  • 2012/08/10 (Fri) 03:09:49
■SUMIF関数の集計が上手くいきません。
http://bekkoame.okwave.jp/qa7628565.html

長いこともつれてる割に…

 「貼付」シートJ列の値が文字列でないか

まだ確認できてないよね。

 =SUMPRODUCT((貼付!$E$4:$E$406=$A406)*貼付!$J$4:$J$406)

なら通るとか、乗算貼付けで1掛けてやれば直るとか、そういうオチでは???

と思ってるなら回答しろよ! >わたし

いや、なんか敷居が高くって…(謎

qa7621154

  • _Kyle(1291004)
  • 2012/08/10 (Fri) 02:51:45
■共通の値をもつ座標の組み合わせについて
http://bekkoame.okwave.jp/qa7621154.html

「ギャンブル統計」っぽい気がして様子見してたんだけど
いざ書こうとすると、これがなかなか手強い。

条件を満たす組合せを作ること自体よりも
組合せの包含関係をチェックするのが大変なのよね。

{1,2,5,7}があれば{2,5,7}はハジかなくちゃいいけない。
かぶらないように作るというのも…う~ん。

で、わたしが書くとコンナカンジ
http://abyssinia2010.web.fc2.com/qa7621154/sample.txt

80×80くらいまでは1185672さんのとタメはりますけど、
90×90くらいになると負けます orz

解読シナクチャ…。つか、寝よう。
----------------------------------------
1185672さん、ブックマーク。

古い方だし、数字も凄いのに、なんでノーマークだったんだろ?
…と思ったら、数学メインなのね。

qa7634051

  • _Kyle(1291004)
  • 2012/08/09 (Thu) 01:33:00
■エクセル。ブック内検索で重複文字列には色付け
http://bekkoame.okwave.jp/qa7634051.html

#2氏

そーゆー要件ぢゃないよ。
というより、動作勘違いしてない?

---------------------------------------------

>月ごとにシートを作成し顧客管理

ここが、まぁ、よくあるマチガイ。

Excelの仕様上
 難:複数のデータを統合
 易:マスタをフィルタ
なのよね。

でも現にそうなってる以上どうすりゃいいかっていうと…
どうするんだろ???

いきなり条件付き書式でやろうとせずに
一意な顧客リストを作って
月別の利用回数を入れとくのが、まぁ順当かな。

---------------------------------------------
オマケ

■Excel関数:文字を含む複数条件の合計 (2)
http://bekkoame.okwave.jp/qa7633434.html

#3氏

これも要件がちゃう。

間違えることはあるよ、にんげんだもの みつを

ただなんでこう「自信アリ」なのかなぁ…。

qa7622627

  • _Kyle(1291004)
  • 2012/08/03 (Fri) 18:16:03
■Excel2010でのマクロについて
http://bekkoame.okwave.jp/qa7622627.html

御礼どころか補足もしない人のようなので
様子見、つかスルーしたんだけど…。

#1氏 

 >そもそも「何をしたい」のか全く不明なので、
 >あなたのヤリタイ事がそのマクロで実現できるかどうかという観点で
 >「拙いか適切なのか」は、当然ながら判りようもありません。

まぁ、それはそうなんだけど、わたしが思うに、もしかして、

1.質問者あるいは回答者A
 「Rows(204+2*Cells(r,c)).Select という書き方でうまくいきました」

2.怪答者B  
 「Rows(204+2*Cells(r,c)).Select という書き方はまずいのでやめましょう」

3.質問者2287694氏(この質問の質問者)
 「Rows(204+2*Cells(r,c)).Select という書き方はまずいのでしょうか?」

4.回答者1719650氏(#1氏)
 「「拙いか適切なのか」は、当然ながら判りようもありません」

という流れだったのでは??

であれば【 観点 】は…
 A.[親オブジェクト]を明示しないと、上から目線の怪答者に叱られることがありますよ。
 B.[既定のプロパティ]を使うと、上から目線の怪答者に叱られることが(ry
 C.[ステートメントをネスト]すると、上から目線の怪答者に(ry
 D.[むやみにSelect]すると、上から目線の(ry
 E.[リテラルを埋め込む]と、上から(ry
 F.[1文字変数]を使うと、上(ry  
みたいなハナシだったのではないかと…。

---------------------------------------------
という前提(仮定)で…

↑みたいなハナシは、まぁ、それぞれもっともな理由のあることで、
【状況】によっては、気をつけるべき時もあるし、
【初心者】であれば、平素から気をつけた方がいいかもしれないけど、
【素人】のばあいは…ケースバイケースでいいんじゃないかと思ったり(ぇ

1回こっきりの単発課題とか、サンプルとか、実験とか、
そんな場面でコーディング規約みたいなものにこだわってみてもねぇ…。

「VBAプログラミングにおいてもっとも意識すべきポイント」は
「コーディング時間の短縮」だと思うのよね。

VBAコードってのはふつー、
何億人ものユーザが、何十年にわたって、毎日何十億回も走らせるような代物ぢゃなくて
数人のユーザが、せいぜい数年、1日数回使うだけのプログラムだから
コーディングに時間かけちゃうと、【労働コスト的に採算が取れなくなる】よね。
結局手作業でやった方が早かった、みたいなハナシになっちゃう。

「素人が手軽にちゃちゃっと書ける」のがVBAの強みなんだから
「原則と規約に則ってきっちり書かなきゃいけない」としたらVBAの存在理由消滅しちゃうw

…とか言い訳しつつ
その場限りのつもりでやっつけコード書いてたら
それがいつのまにかレガシー(笑)になっちゃって
【 退職して数年後に電話かかってくる 】
みたいなことも、ままあるけどねwww orz

以上、元質問とはほぼ関係なく、
架空の(しかしアリガチな)やりとりを想定して、憶測だけで騙ってみました(ぉぃ

---------------------------------------------
あと
>架空の怪答者さま
「ダメ出しするときは、論点・観点を明示的に指定するようにしましょう」

   # 架空の怪答者=上記怪答者B 1719650氏ではありません、念のため。 

qa6745279

  • end-u(1037781)
  • 2011/06/25 (Sat) 18:22:57
■VBAでグラフ
http://oshiete.goo.ne.jp/qa/6745279.html?order=asc

まぁ、ダウト判定されても文句は言えない。
もっとも、もっとストレートに言わなきゃ伝わらんだろうけど。

qa6162769

  • end-u(1037781)
  • 2010/09/06 (Mon) 21:09:19
■Excelシートをテキスト形式で保存するマクロを作成しているのですが、...
http://oshiete.goo.ne.jp/qa/6162769.html?order=asc

またですか...orz
そのコードでいったい何がしたいのやら?

qa6071227

  • end-u(1037781)
  • 2010/07/29 (Thu) 22:50:54
■ExcelVBAでの文字列置換について
http://oshiete.goo.ne.jp/qa/6071227.html?order=asc

#書くと思ったっしょ?
#ご想像どーり。
>できるなら、#1さんに完成してもらいましょう。
『できるもんならやってみろ』
ぁ、私の脳内置換装置が壊れてる...

私もオトナゲ無いですが、
簡単な事を難しげに言うのはもっと大人でないでしょ。
事前に存在チェックをかけるのがそんなに面倒なのかな。

qa6045903

  • end-u(1037781)
  • 2010/07/22 (Thu) 23:27:22
...ついでに。
■「Officeのイルカ」こと「Office アシスタント」の学術的正式...
http://oshiete.goo.ne.jp/qa/6045903.html?order=asc

ぁ、あれ?
補足だったかお礼だったか、質問者さんからのコメントがあったハズなんだが......?
ケされちゃいましたか。
まあ、確かに『知らない、分らないという回答は不要』とか『回答でない回答は不要』とかそんなニュアンスでばっさり斬り捨てられてましたからねー
一応googってみたら「Interface Agent」とか「Agent Interface」とかって単語が関連してたようなんだけど触らぬナントカ...ですね。
そもそもカテチガな気が。
それにレスへのお礼くらいは一言あっても良いような気がしないでもなかったりして:P

qa6057042

  • end-u(1037781)
  • 2010/07/22 (Thu) 22:50:30
■Excelの関数、条件付き書式で困っています。
http://oshiete.goo.ne.jp/qa/6057042.html?order=asc

で、出遅れた...orz
確認後[回答する]クリックで『アクセスが集中しています』...(うそつきっ

...、マボロシ回答となってしまったのであった。
>VLOOKUPを使う場合、
>
>   A   B  C
>1 リンゴ 100  200
>2 イチゴ  30  50
>3 メロン 500 1000
>4  :
>
>このような対応表を作っておいて、
>E1セルに リンゴ
>F1セルに条件付き書式を設定するとして
>=OR(F1<VLOOKUP(E1,$A$1:$B$3,2,0),F1>VLOOKUP(E1,$A$1:$C$3,3,0))
>この数式を満たす時に赤文字にすれば良いです。
>
>または素直に
>=F1<VLOOKUP(E1,$A$1:$B$3,2,0)
>=F1>VLOOKUP(E1,$A$1:$C$3,3,0)
>それぞれ分割して、条件1と条件2に設定するとか。
>
>あるいは対応表を工夫して
>
>   A   B  C  D
>1 リンゴ  0  100  200.001
>2 イチゴ  0   30  50.001
>3 メロン  0  500 1000.001
>4  :
>(0.001は最小計測単位よりも小さい単位であればよいです)
>
>=MATCH(F1,INDEX($B$1:$D$3,MATCH(E1,$A$1:$A$3,0),0))<>2
>(E1セルに 農作物名称、F1セルに条件付き書式を設定)

...ん?結果的に「イチゴ」は「イチゴ」なりのケースバイケース式で良かったん?
...間に合わなくってよかったのかしらん?:P

qa6001860

  • end-u(1037781)
  • 2010/06/29 (Tue) 22:37:50
■VBAに詳しい方に質問です。
http://oshiete.goo.ne.jp/qa/6001860.html?order=asc

ぇ?

どう見ても
■VBAに詳しい方に質問です。
http://oshiete.goo.ne.jp/qa/6001849.html
これの続きだと思うんですが。
いきなり複アカって?

まあ、同じスレタイトルが連続してたら重複投稿って思い込んじゃいますけどね。
でもどうしてこっちには湧いてくれないんだろ?
#ぃや湧かれてもヤだけど。:P

qa5996990

  • end-u(1037781)
  • 2010/06/28 (Mon) 23:14:47
■エクセル2007で%の平均値を求めたいのですが、うまくできません。
http://oshiete.goo.ne.jp/qa/5996990.html?order=asc

ぅーん?...-"-
私のほうが間違ってる気がしてくるから不思議だw

っていうか
>=AVERAGE(H1,O1)

まぁ、ねー...
%の平均とる事自体に意味がないんだったらどんなAVERAGEでもいいっちゃあ、いーんだが。
ホントに平均値が必要な時、困るって。

http://oshiete.goo.ne.jp/qa/5952092.html
上司に確認中なのかな?

Re: 追記

  • _Kyle(1291004)
  • 2010/06/22 (Tue) 19:05:43
>気になったのでチェックしたら…orz

あるあるあるあるあるある……100人に聞きましたw ←歳がバレる

 # わたしの場合ありすぎですが… o  ...rz

re2:qa5956189

  • _Kyle(1291004)
  • 2010/06/22 (Tue) 18:16:49
あら、続編があったんですね。知りませんでした。

まぁ元質問は「1次元配列をワークシートに高速で転記」ですし
アルゴリズム周りはオマケってことで良かったんじゃないかと…。

「【ちょっとした工夫】で劇的な効果」ってのが重要だと思うんですよね。

わたしも「6n±1までは圧縮できそうだなぁ…」とは思ったんですが
いざ実装するとなると……orz

そもそも
「素数大量に見つけてどうすんだ?」
ってハナシもありますし(笑

もし元質が、タイトル通り
「大量のデータを吐くプログラムの出力部分のコーディング」
が主眼で、
「【たとえば】素数を大量に探す場合」という設定だったら、
素数見つける方法にこだわっても仕方ないわけですしね。

-----------------------

部分和も、一段落ついたら
「最速ではないけどシンプルで速い」
を追求してみようかなと思ってます。
…でないと回答に使えないし(苦笑

re2:qa5972724

  • _Kyle(1291004)
  • 2010/06/22 (Tue) 18:13:54
 >大容量のCSVファイルを普通に[開く]とやたら遅い
 >普通にOpen&Moveで良い

タスクの規模や量については回答時点ではわかりませんしね。

 # 「スケール」って実はすごく重要なポイントなのに、
 # 質問者も回答者もなぜかあまり触れない (ーー;)

質問文のニュアンスも踏まえれば
「開く前に抜いちゃえばいいじゃん」
ってのはある意味順当なアプローチかと…。

「どうやって開く前に抜くか」って部分は
確かに初心者向きではないかもしれませんが…(^^;;;;;

 >Dim fName As String

コレはわたしも時々やっちゃうなぁ…と思ったら、
Stringにした上で判定はしてるんですね(ーー;)

-----------------------

>SMELLIT

wwww

re:qa5956189

  • end-u(1037781)
  • 2010/06/22 (Tue) 12:45:07
ぅ...これも反省スレッドorz

ご存知かと思いますが続編、

■エクセルVBAで実行時エラー7、メモリー不足が出ます。
http://bekkoame.okwave.jp/qa5961164.html

勉強させていただきましたorz

#3リンク、そー言えばベンチマークしてみた事あったんでした...orz
というか、あの方かー。
速攻マークしました :)

re:qa5972724

  • end-u(1037781)
  • 2010/06/22 (Tue) 12:13:55
お帰りなさい :D
#ぃや、復帰した別の方あてではなくw

以下反省文。
Excelで大容量のCSVファイルを普通に[開く]とやたら遅いので
今回もその案件かと思ってしまいました。
InputBで読むのもRegExpで置換するのも高速化手法です。
初心者の方にしてみれば解かりにくくて迷惑な話かもしれません。
しかも回答後にアップされた#4へのお礼文を見ると然り。
普通にOpen&Moveで良いと思う。
自動記録も取れるし。
もし私が締切り後レス入れるならそうしてる。
ちなみに
>Dim fName As String
じゃコケますって。



しかしなー...
i氏復帰の所為で、しなくてもいいレスが増えるのはヤだ。
■エクセルのマクロでコマンドボタンを押すと、セルに入力した住所のGoog...
http://bekkoame.okwave.jp/qa5968244.html
#i氏のモニタはSMELLITらしい :P



追記)
ぉわ。
気になったのでチェックしたら
>高速化手法
ウソツキ...orz

>With CreateObject("VBScript.RegExp")
>  .Global = True
>  .Pattern = "([^\r])(\n+)"
>  buf = .Replace(buf, "$1 ")
>End With

これだったらVBA.Replaceに負けます。
vbLf消すだけでいいんだったら

With CreateObject("VBScript.RegExp")
  .Global = True
  .Pattern = "\n"
  buf = .Replace(buf, "")
End With

これで。

qa5972724

  • _Kyle(1291004)
  • 2010/06/22 (Tue) 04:54:34
■EXCELにcsv形式の外部データを取り込む際にカンマ区切りで取り込も
http://bekkoame.okwave.jp/qa5972724.html

こういう薀蓄や仄めかしばかりで具体的な解決が出ない展開って
なんか「イラァ~~~~!」っと来ますよね。

------------------------------

#1 芋

相変わらずの迷調子。

 >10数行のコードで出来ることだ。

だったらぐだぐだ言わず書けよ!

 > 先所のためには

なんのtypoかしばらく悩んで結局判らなかったので…
 http://www.google.co.jp/search?hl=ja&source=hp&q=%E5%85%88%E6%89%80&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&aqi=&aql=&oq=&gs_rfai=

「削除」か!!w グーグルってホント便利だ。 

------------------------------

#3,4,7 御大

なにも何年も前の質問のことをねちねち蒸し返さなくても…(ーー;)

 > 何年後しのせっかくの回答だったのに

???

翻訳すると

「誰もが崇め奉る神回答者であるところの自分が、
 マナー知らずの不遜な質問者に対して、
 寛大にも有難いコードを授けてやろうとしたのに」

かしら??

だいたい、「アタリつけて叩き台を出す」という発想がないのかしらん?

…あー、これが例の「ちゃんとした回答をしないモード」ですか。
で、具体的な回答がついた途端に俄然やる気になって、
すんばらしーコードを披露してくださったというわけですね。

 > 別に、誰がコードを書こうが、最終的には、質問者さんの満足度ですから、
 > その後で、自分ならこうだと披露するような、
 > 自己満足のコードはするつもりもありません。
 > また、私は、挑発させられたとしても、それで奮起させられて、
 > そのままコードを書くようなつもりもありません。

って、あれ??? www

------------------------------

で、#5評価不能 o ....rz

テキストファイル周りって
リファやお手本見ながらならなんとかいじれるけど
染み付いた苦手意識がどうしても消えない orz

子どものころ、シーケンシャルファイルとかランダムアクセスファイルとかで挫折したトラウマが…(爆)

qa5956189

  • _Kyle(1291004)
  • 2010/06/22 (Tue) 04:25:37
■1次元配列をワークシートに高速で転記する方法について質問します。
http://bekkoame.okwave.jp/qa5956189.html

今見たんですが、いろいろと参考になりました。<(_ _)>
…あまり本筋と関係ないところでw

------------------------------

フラグ立ててる部分は、
定義通りっちゃ定義通りですけど、シンプルでエレガントですね。
「ナルホド」という感じでした。

 # わたしもつい考えてみたくなったんですが
 # 素数周りのアルゴリズムは、
 # 「古代ギリシャから現代に至るまで」
 # 「初級プログラミングから暗号理論に至るまで」
 # アタマの良い人たちが徹底的に考え尽くしてますから
 # 素人がアレコレ考えるより、単に「調べる」方が絶対早いということで自重w

------------------------------

二次元配列への転記部分も、
「あ、そうよね」という感じで。

わたし、こういう場面では
「ループ1つにカウンタ2つ」ではなくて
「ループ2つにカウンタ1つ」でやっちゃうんですよね、なぜか。
なんでだろう???

------------------------------

>メモリ負担が大きいのでLong型&Replaceのほうが良い

そですよねー。

以前そうしたこともあるんですけど、少し迂遠な気がして…。
つか、ReplaceとかFindとか、微妙に敷居が高いわたし orz

「部分和」は現時点で「ゼロは選ばない」仕様になってますし
いずれそうします。

------------------------------

>配列から一気に書き出す場合は不要

課題Cくらいのサイズになると気持ち差が出るみたいですね。

 # なんでだろ?
 # …2003以前と2007でも挙動が違いそうな悪寒 (ーー;)

qa2941613

  • _Kyle(1291004)
  • 2010/05/28 (Fri) 01:43:34
■エクセルVBAで配列?
http://bekkoame.okwave.jp/qa2941613.html

3年も前の質問だけど
「"ジャグ配列"についてのわたしの認識はあってるかしらん?」
と思って検索してたら引っ掛かったので。

#4 御大

 > >ar = Range("A1:D1").Value
 > 通称、ジャグ配列といいます。2次元配列の変形したものです。

え゛??????? (ーー;)

それは普通の二次元矩形配列ぢゃ…。

==========================

「ジャグ配列」って、普通は…

Sub Sample()
 Dim ar As Variant
 Range("A1:D4").Formula = "=row()&"":""&column()"
 ReDim ar(1 To 3)
 ar(1) = Range("A1:D1").Value
 ar(2) = Range("A2:C2").Value
 ar(3) = Range("A3:D4").Value
 Debug.Print ar(3)(2, 3)
End Sub

こういうヤツのことだよね?
わたし間違ってる??

==========================

それとも、
「正方形は長方形(の一種)です」
「円は楕円(の一種)です」
「単一の値も1×1の配列(の一種)です」
「ただの配列もジャグ配列(の一種)です」
みたいなハナシ?

re2:qa5903877

  • _Kyle(1291004)
  • 2010/05/22 (Sat) 19:52:52

>Excelファイルの一種というイメージになってしまうのかしらん。

「エクセルのファイルを開くと……」という前提で延々引っ張っておいて、
最後の最後になって、

 今明らかにされる衝撃の新事実!!

    その「エクセルのファイル」はCSVだった!

…みたいなのはけっこうありますよね(苦笑

その点、今回の質問者さんは、区別がついてるだけマシな方かと思ったりもw

------------------------------

しかし、結局なにが「標準のCSVエディタ」かと言われると結構悩みどころだったり。

メモ帳じゃ足りないし、フリーのエディタだとなんか胡散臭い目で見られちゃうことも多いし…。
「壁紙とスクリーンセーバとマルウェア以外何も入ってないPC」
みたいな環境で「とりあえず」っていうことになると、やっぱりExcel使うしか… orz

------------------------------

実際CSVファイルの管理ってけっこう気をつかいますよね。

「コレなんだろ?」みたいな感覚で勝手に開いてそのまま保存でもされた日には…(T_T)
いっそ拡張子全部datに書き換えてやろうかと思ったことも(ぇ

re:qa5903877

  • end-u(1037781)
  • 2010/05/22 (Sat) 17:01:44
>CSVがデフォルトでExcelに関連付けられてるから..
ですよね。
Excelファイルの一種というイメージになってしまうのかしらん。
アイコンに罪が?:D

>「開いて保存するだけでデータが変わる」
今回はさらにセルに
2010/5
って入力しても
May-10
に変わるっていうExcelのおせっかい機能のダブル罠にはまったみたい。

qa5903877

  • _Kyle(1291004)
  • 2010/05/22 (Sat) 08:59:29
■CSV変換作業について困ってます
http://bekkoame.okwave.jp/qa5903877.html

なんか、この種の誤解?認識違い?でもつれることって結構ありますよね (ーー;)

CSVがデフォルトでExcelに関連付けられてるから
「Excel=標準のCSVエディタ」 みたいな感覚になるんですかね?
まぁ、そういう意味ではたしかに罠みたいな(Windowsの)仕様ではありますけど…。

もし Excel=CSVエディタ であるならば

  「開いて保存するだけでデータが変わる」

ってのは確かに【奇妙な挙動】ということになりますけど
ExcelでCSVを開いて保存ってのは
実質的に「インポート/エクスポート」してるわけで、
であれば

  「インポート後に再エクスポートしたら元のデータに戻らない」

ってのは別に珍しくないハナシですよね。

 #とかいいつつ、ANSIとかUTF-8とかUnicodeとか言われると、頭がウニになるわたし(ぉぃ

qa5748593

  • _Kyle(1291004)
  • 2010/05/15 (Sat) 04:08:27
■関数に関しての質問です
http://bekkoame.okwave.jp/qa5894608.html

 >#それと?
 >前のご質問は解決したのでしたら,
 >ご相談投稿を「解決して閉じる」操作も忘れないうちに行っておいてください。
 >しばしばあれもこれもの内に,
 >本人すっかり忘れ去って放置になるマナー違反の投稿は多いです。

↓公開してわざわざ晒してらっしゃるこれは
 『解決してない』のデスネ (ーー;)

●質問者さんの質問履歴を確認する方法は?
http://bekkoame.okwave.jp/qa5748593.html

これももしかして自己言及ギャグの一種?

qa5891717

  • _Kyle(1291004)
  • 2010/05/15 (Sat) 02:00:49
■OKwaveでは回答が付いてからメール通知が来るまでなぜ数十分から数時
http://bekkoame.okwave.jp/qa5891717.html

まるっと転載^^;;;

 >前に問合せしたときには、サポートで確認後に配信してるから遅くなると言ってました。
 >もし違反投稿があった場合、そのまま通知されないようにじゃないでしょうか。

初出情報ってわけではないんだけど、一応。

問題は「どういう条件で『確認送り』フラグが立つのか?」だけど……

qa5892434

  • _Kyle(1291004)
  • 2010/05/13 (Thu) 23:23:06
■Excelの関数について教えて下さい。
http://bekkoame.okwave.jp/qa5892434.html

#2さん。

>練習しておいてください。

目線の角度急上昇中(ーー;)

思わず「いもはもういない人」を彷彿しちゃったw

 #…ん?なんかtypoした気が。

-----------------

いや、Excelスキルとか回答スキルとかは評価してるのよ、かなり。

表BA率39.74%というのはもちろん立派な数字だし
常駐wしてるのも、質問者サイドからすれば当然プラスの要素だし。

ここでは色々ダメ出しすることが多いけど
わたしの方も相当無茶書いてるし (←自覚あるのかw
わたしだって毎度ポカはやらかすし (←「毎度」ねw
「ポリシーの違い」に属することも多いし (←ROW(A1)はみんなやってる
「基本的には解決に導いている」からこその40%だしね。

他に【ヲチする価値もない】ような怪答者は山ほどいるしね。

-----------------

そういう前提であえて書くんだけど…

 【 検閲削除 】

まぁ、わたしも相当な「不快」キャラだしw

qa5885112

  • _Kyle(1291004)
  • 2010/05/13 (Thu) 22:56:47
■Excel起動時にAuto_Openでマクロを動作させています。
http://bekkoame.okwave.jp/qa5885112.html

一見すると「単に語ってるだけ」のようにも見えるけど…

 >もちろん、私自身としては、#2さんの回答は、私も使っているテクニックです。
 >ただし、少し複雑なのは、最初にブックを使用した時に自分専用の環境を作り、
 >それでチェックさせるという方法です。
 >だから、フォルダを変えても、動かないような作りにしています。

 >面倒だなって思うなら、#2さんのテクニックで十分だと思います。

【 #2さんよりもレベルの高い回答者である 】
【 #2さんの回答よりもレベルの高い回答である 】
というアピール?

qa5890131

  • _Kyle(1291004)
  • 2010/05/13 (Thu) 21:39:38
■Excel 2007 マクロは、即、そのまま使用はできないのですか?
http://bekkoame.okwave.jp/qa5890131.html

「著作権侵害」で怒られそうな気がするけどw

 >Office 2007 で、デジタル署名を入れる事自体に反対はしないけれども、
 >デバッグの可能性のあるものは、最悪、ブックを削除することになりかねません。
 >基本的には、前のものとデジタル署名自体は変わらないものの、その扱いに対しては、
 >セキュリティが高くなりましたので、みだりにデジタル署名を入れた後は、
 >その開発者本人でも変更できなくなりますので、バックアップを取ってからならともかく、
 >そのまま入れることはお薦めできません。
 >私は、開発した大事なマクロブックをなんなん削除しました。

また【 抽象的で検証困難な仄めかし 】デスカ orz

「古参で常連で5桁ポイント級回答者であるところのわたしが言うのだから無条件で信頼せよ!」
ということなんだろうけど、せめてURLくらい貼ってくれりゃいいのに…。
…もしあるなら。 …できれば日本語のページを。

署名が効かないとか、署名が失われるとか
そういうことはままあるだろうけれども
「署名があるせいで変更できない/コードも取れない」
ってどういう状況なんだろ?

そもそも「署名」ってのは「完全性」を証明するためのものだよね。
「改竄されないようにする」機能ではなくて「改竄されたときわかる」機能。

…まさか「プロジェクトのロック」とか「ドキュメントの暗号化」のハナシぢゃないよね?

qa5892393

  • _Kyle(1291004)
  • 2010/05/13 (Thu) 21:30:39
■EXCELで最初の曜日を入力したら他のセルで自動で表示したい
http://bekkoame.okwave.jp/qa5892393.html

わらわら回答がついて、ぐだぐだ。
あげくにVLOOKUPとか。 orz

…質問者さんの方もいい加減アレだけど。

---------------------------

シリアル値と表示形式でやるのが「すまーと」なのかもしれないけれど

 【 最初の曜日を文字列ではなく曜日番号で入れなさい! 】

ってのはあまりユーザフレンドリぢゃないよね。

もちろん「数値並べて表示形式をaaaにしたリスト」を別に用意して
最初の曜日をドロップダウンリストで選ばせれば片付くハナシではあるけど

 【 誰も触れないし 】

---------------------------

で、「一か月分の日報」ってことは
【1シートあたりたかだか30ヶ所】で【月に1度しか変更しない】わけだよね。

素朴に文字列で入れさせて

 =MID("月火水木金土日",FIND(A1,"日月火水木金土"),1)

で何がいけないのかしらん?

曜日の一覧なんてものは「動かない」んだから
別表作らず埋め込んじゃってもいいよね、別に。

↓これは[1904年から計算する]とマズい
…けど、実際問題としては別にマズくはなさそうな気も(ぇ

 =TEXT(FIND(A1,"日月火水木金土")+1,"aaa")

qa5878812(再掲)

  • _Kyle(1291004)
  • 2010/05/12 (Wed) 23:59:29
●エクセル(マクロ含む)で、列の並べ替えはできますか?
http://bekkoame.okwave.jp/qa5878812.html

#4さんに支援5つ入ってるwww

【 それだけのハナシだよね 】

qa5882652

  • _Kyle(1291004)
  • 2010/05/12 (Wed) 23:57:25
■最近、VBAを学び始めた者です。
http://bekkoame.okwave.jp/qa5882652.html

わたしなら、まぁ、↓こういう方向で考えるわけだけど
理詰めで書いた入門レベルの素人マクロだから
実践用としては何かマズいんだろうね、きっと。

'=====↓ココカラ↓============================
Sub Sample()
  Dim myAry As Variant
  Dim myCel As Range
  Dim i     As Long
  With Worksheets("Sheet1").Range("A1:A100")
    ReDim myAry(1 To .Rows.Count, 1 To 1)
    For Each myCel In .Cells
      If myCel.Value <> "" Then
        i = i + 1
        myAry(i, 1) = myCel.Value
      End If
    Next myCel
    .Value = myAry
  End With
End Sub
'=====↑ココマデ↑============================

qa5889849

  • _Kyle(1291004)
  • 2010/05/12 (Wed) 23:50:54
■エクセルの関数で質問です。上のセルになんらかの文字が入っていた場合、左
http://bekkoame.okwave.jp/qa5889849.html

#1,6さん

素朴に
 =IF(B1="","",A2)
を勧めるのはいいんだけど、参照形式に関する認識、というか解釈はちょっとヘン
…というより「もしわかって書いてるんだったら」misLeadの類いじゃないかなぁ…。

R1C1形式とA1形式は単なる「表示」の違いだし

 ・B2セルにある =IF(B1="","",A2)
 ・B3セルにある =IF(B2="","",A3)

は「同じ数式」だよね。

「自動で書き換わって投入され」るわけぢゃないよ。

===============================

>そういった式を書きたいというのはエクセルの使い方としては良くない

>適正な式をわざわざ設計しないといけないのがダメな理由です。

んっと、それは単に「状況」と「慣れ」の問題。

適正な式を書くのに慣れていなくて「メンドクサイ」からといって
ROW(A1)みたいな式書くのは「エクセルの使い方としては良くない」と思うなぁ、わたしは、しつこいけど。

実際、行抜き・行入れ対策で
 =IF(B1="","",A2)
の代わりに
 =IF(INDEX(B:B,ROW()-1)="","",A2)
みたいな【堅牢な】書き方をすることはあるし
行抜き・行入れに備えるべき「状況」であればむしろ
【そう書いとかないとマズいだろ!】と思うんだけどね。

あ、そうか、行抜き・行入れのたびに「メンテナンス」するわけね。
で、毎日のように「メンテナンス」が必要になるから
「メンテナンスしやすいように」「メンドクサクない」式を書くと…ナルホドw

なんというマッチポンプ (ーー;)

qa5890579

  • _Kyle(1291004)
  • 2010/05/12 (Wed) 23:21:59
■【至急】エクセルでの計算方法を教えてください。
http://bekkoame.okwave.jp/qa5890579.html

 =IF(A1>180,A1-360,A1)

まぁ、他人事だから、別にIFでも良いし
どうせ「IFの方が"わかりやすい"」って言われるんだろうけど…

「やりたいこと」はこうだよね。

 =MOD(A1-180,360)-180

「360を法として、180ベースの値を-180ベースの値に変換する」

 #180キッカリのときどちらにまわすかってハナシはあるけど
 #0⇒0 なら 180⇒-180 となるのが自然。

   #{1,2,3,4,5,6,7,8,9,10} でも {0,1,2,3,4,5,6,7,8,9} でもいいけど
   #{0,1,2,3,4,5,6,7,8,9,10} は11あって気色悪いよね、ってハナシ

===================

MVP氏みたいな人はたぶん

「4[月]ならば1,5[月]ならば2,……,2[月]ならば11,3[月]ならば12」という場合には
 =IF(A1<=3,A1+9,A1-3)

「3[火]ならば1,4[水]ならば2,……,1[日]ならば6,2[月]ならば7」という場合には
 =IF(A1>=3,A1-2,A1+5)

「9[時]ならば0,10[時]ならば1,……,7[時]ならば22,8[時]ならば23」という場合には
 =IF(A1<9,A1+15,A1-9)

みたいに「わかりやすく」書くんだろうね。


 =MOD(A1-4,12)+1
 =MOD(A1-3,7)+1
 =MOD(A1-9,24)

===================

あるいは、

「4[月]の8ヶ月後が何月か計算する」場合には
 =IF(A1<5,A1+8,A1-4)
と書いておいて

「加える月が動くんですが…」と言われて
 =IF(A1+B1>12,A1+B1-12,A1+B1)
と「メンテナンス」して

「加える月が17ヶ月のとき…」と言われると
「後出ししないでください」とブチ切れるわけね。


 =MOD(A1-1+B1,12)+1

===================

 =MOD([元値]-[元値表示でのベース],[法])+[変換後のベース]

「短い方がカッコイイ」とか
「難しい関数を使用してみた」とか
「どんだけIF嫌いなんだwww」とか
そういうハナシではなくってね

 =IF(A1<=3,A1+9,A1-3)

とする代わりに

 =MOD(A1-4,12)+1

としとけば

・周期が「12」ってこと ⇒ たぶん「月」を扱ってるんだろうってこと
・元値が「4」のとき戻り値が「1」になるってこと
・戻り値が「1~12」の範囲になるってこと

が【 パッと見てすぐにわかる 】でしょってハナシ。

 =MOD(A1-9,24)

であれば

・周期「24」⇒たぶん「時間」あるいは「時刻」
・元値が「9」のとき「0」
・戻値は「0以上24未満」

ってことが【 パッと見てすぐにわかる 】よね。
===================

これはTipでもなんでもなくてね
 【 MODってのは元来そういう関数 】 
なの。

「ちがいます! もっどはわりざんのあまりをかえすかんすうです!!!!」

つ http://ja.wikipedia.org/wiki/合同式

何のために「剰余」を返す関数が用意されてるかってハナシ。
MODが何の略だと思ってんの? 「余り」じゃなくて「法」(modulus)の略だよ。

 MOD(m,n)

は、nを「法(mod)」として、mが属する剰余類の、0ベースの代表元 を返す数式デス。

・7を「法(mod)」とする剰余系 ⇒ 曜日
・12を「法(mod)」とする剰余系 ⇒ 月
・24を「法(mod)」とする剰余系 ⇒ 時間
・60を「法(mod)」とする剰余系 ⇒ 分
・360を「法(mod)」とする剰余系 ⇒ 度
・Nを「法(mod)」とする剰余系 ⇒ N進数の各桁

Nを「法(mod)」とする剰余系を処理するために、「MOD(法)」という関数や演算子があるの。

===================

「そんなむずかしいかんすうをつかったらめんてなんすできません!」

そんなに「メンテナンス」が好きなら一生「メンテナンス」しててください。

でも、あなたが「メンテナンス」だと考えている 【 元来不要な作業 】は
世間では「給料泥b(ry

re2:qa5885293

  • _Kyle(1291004)
  • 2010/05/11 (Tue) 01:55:57
ども。
なんか「なまあたたかくない」ネガティブ記事が多くてスミマセン。
ちょっと不機嫌なのかしら??

>ワタシだったら確実にピボットテーブルだなぁ...

わたしならデータベースクエリか、状況が許せばVBAですね。

ピボットテーブルは、レコードID振って実質「集計しない」ようにした場合でも、
項目ユニークにするために裏で重複チェックしますよね。

この種の転記は元データの規模がけっこう大きくなりますし
勘定科目も場合によると百超えちゃったりとか(滅

VBAなら科目がいくら多くても一回舐めるだけで済みますから。

>説明割愛してもいいけどリンク貼るくらいは...ねぇ?

...ねぇ (ーー;)

>実務的には
>「別シートに抜き出さなくていいからオートフィルタでやりなさいっ」
>て言っちゃいそう :D

あー、それは……
1科目1シートで、作業グループで全科目一気に刷れるようにしとかないと
監査の直前に修正入って、10分で全科目刷り直せとか言われたら泣きます(T_T)

あと「テーブルの上に科目名をでっかく」とか言われたり
結局「オートフィルタをVBAで回す」⇒「全部VBAで」って流れになるお約束w

re:qa5885293

  • end-u(1037781)
  • 2010/05/11 (Tue) 01:19:56
ワタシだったら確実にピボットテーブルだなぁ...
でももしかしたら集計されちゃうと意図が違うって事かな?
説明割愛してもいいけどリンク貼るくらいは...ねぇ?

多分、実務的には「別シートに抜き出さなくていいからオートフィルタでやりなさいっ」て言っちゃいそう :D

qa5885293

  • _Kyle(1291004)
  • 2010/05/11 (Tue) 00:58:58
■表の中から特定のデータを別のシートに抜き出したいのですが、オートフィル
http://bekkoame.okwave.jp/qa5885293.html

【A枠だから、まぁ、良いんだけどね】

#1さん。

  >#ピボットテーブルレポートの方がもっと簡単ですが,
  > 多分絶対に使わないので説明は割愛します。

この一文がなんの役に立つのかわからない。教育的配慮?

  >#余談デスが

本当に余談。 つチラシの裏

  >作業列を使わないちょーメンドクサイ数式も過去ログを探せば山ほど出てきます。

コピペして参照調整するだけだから、面倒臭くはないよ。
…もしわたしが書くような数式のことを言ってるんであれば。

  >それを見た初心者さんがなんだか凄くて良さそうと飛びつく難しそうな数式ですが,
  >ご相談の用途では重たすぎて実用的ではありません。

フィルせず、配列まるごと返しちゃえば実はさほど重くないんだけどね。
たいていの場合、そういうふうに作ってあるし。
…もしわたしが書くような数式のことを言ってるんであれば。

ところで
  ・作業列アリの前提にも関わらず
  ・CUNTIFをフィルしたり
  ・各列でVLOOKUPしたりしながら
  ・重さのこと騙る
って、自己言及ギャグの一種ですか?

  >また率直にオートフィルとオートフィルタの区別が付いてないぐらいの不慣れな方には
  >ちょっとメンテナンスもできないので,やはり使わない方が良いでしょう。

率直に【言って】オートフィルとオートフィルタの区別が付いてないぐらいの不慣れな方に
ROW(A1)なんて参照を含む数式を提示するのは、罠以外のなにものでもないでしょう。

それから、【メンテナンス要らない】ように作ってあるから。
…もしわたしが書くような数式のことを言ってるんであれば。

あとね、
【そもそも、こういう規模の大きい継続使用課題で、一発数式勧めたりはしないよ】
…万が一わたしのこと言ってるんであればw

qa5885396

  • _Kyle(1291004)
  • 2010/05/10 (Mon) 21:09:11
■Excel数式について
http://bekkoame.okwave.jp/qa5885396.html

#1
  >注意:
  >>sheet1からsheet4の…1~100までの数字
  >ご相談で書かれている通りにSheet1,2,3,4でなければなりません。

#5
  >回答したとおりSheet1,2,3,4というご相談だったので,
  >そのように規則性があるとき出来る方法をお話ししました。

  >後出しはもうカンベン願いたいので,
  >このアプローチを探りたいときは自力でお願いします。

ん~っと

「質問文で「Sheet1,Sheet2,…」と書いていたが実際のシート名は違うものだった」
というのは【後出し】なの?

「質問文で「Sheet1,Sheet2,…」と書いていたので実際のシート名もそうだと考える」
というのは【読み過ぎ】なのでは?

■質問
 A1セルに3,A2セルに4が入力されているとき、その合計7をA3セルに返す数式は?
■回答
 A1セルに3,A2セルに4が入力されているのなら、A3セル: =7 とすればOKです。
■補足
 A1,A2セルに入力されている値は変わるんですが…
■回答
 後出しは勘弁してください。

こういうハナシ?

「シート名に規則性があるか否かがポイントになる」
というのは、INDIRECTを前提に考えるからであって
INDIRECTが念頭にない質問者、たとえば3D参照みたいなのをイメージしていたかもしれない質問者に対して
「シート名に規則性があるか否かを質問の時点で明示せよ」
ってのは無茶では?

======================================  

#1

  >#式中の「ROW($A$1:$A$4)」の部分はシート1,2,3,4の名前を作るのに使っているので,
  > 変えてはいけません。
  >#式中の「ROW(A1)」の部分は1から100の数字を作るのに使っているので,
  > 変えてはいけません。

そっか。
「いかにも変えられてしまいそうな、トラブりそうな、罠みたいな記述」だという認識はあるんだ。

でもね、そういう記述は【変えなくても勝手に変わる】んだけど。

シートの目立つところに

  #式中の「ROW($A$1:$A$4)」の部分はシート1,2,3,4の名前を作るのに使っているので,
   変えてはいけません。
  #式中の「ROW(A1)」の部分は1から100の数字を作るのに使っているので,
   変えてはいけません。

  #行やセルを削除してはいけません
  #行やセルを挿入してはいけません
  #行やセルを移動してはいけません

ってでっかく書いとかきゃ。

qa5877101

  • _Kyle(1291004)
  • 2010/05/10 (Mon) 20:13:38
■Excel2002のおせっかい機能について
http://bekkoame.okwave.jp/qa5877101.html

わたし自身、Excelのあれやこれやについて
「おせっかい」と思うことは、まぁ、ままあるけど
そういうことを声高に言う人に限って
「こんな機能はないのか!」
「自動的に○○になるようにしたい!」
みたいなことも言うのよね。

こういう人が言いたいのは結局
「【 今 】わたしが期待しているように動作しろ!!!11!」
ということ。

仮に質問者が【今】期待しているような仕様だったとしても
【いつか】別の状況では今とはまったく逆のことを叫ぶよね。
「CSVを開くと勝手に文字列化するExcel2013のおせっかい機能について!」

こういう人が望んでいるのは結局
「4/5」と入力したとき
 ・日付「4月5日」なのか
 ・分数「5分の4」なのか
 ・数値「0.2」なのか
 ・数式「4÷5」なのか
 ・文字列「4/5」なのか
Excelが脳波でも検知して自動的に判断してくれるようなインターフェースなんだろうね。

 残念ながら、Excel2002はもちろん、Excel2010にもエスパー機能は搭載されておりません。

 「ゆんゆんUI」搭載のExcel2178発売を待ちましょう。

========================

これもね。

■word2000のお節介な機能を止める
http://bekkoame.okwave.jp/qa5884642.html

Wordがあんなグダグダ仕様になってるのはね
あなたみたいな
「この機能はいる!/この機能はいらない!」
ってわめきたてる自己中ユーザに振り回されたからだよw

 つ メモ帳

qa5875775

  • _Kyle(1291004)
  • 2010/05/10 (Mon) 20:04:40
■マクロで改行された計算式の値のコピー
http://bekkoame.okwave.jp/qa5875775.html

なんか見たことある気がするんだけどなぁ…思い出せない orz

わたしの現環境で再現できないってことは
パッチ当てると直ったりするのかな?

qa5885148

  • _Kyle(1291004)
  • 2010/05/10 (Mon) 20:03:31
■Exelの表を以下のように全行組み替えたいと思いますが、手作業では大変
http://bekkoame.okwave.jp/qa5885148.html

なんだかなぁ…。

#1さんは単純な読み違えだとしても、#2さんは……教育的配慮?

qa5885136

  • _Kyle(1291004)
  • 2010/05/10 (Mon) 20:02:00
■おねがします。仕入部品の単価一覧表を作成したいのです。
http://bekkoame.okwave.jp/qa5885136.html

うゎっと。
もし#3さんに先越されなかったら
あやうくこんな↓寝言投稿しちゃうところだった orz

 =AND(ISNUMBER(A1),A1<10^8,MOD(A1*100,1)=0)

いや、怪しい感じはしてたんだけどね…。
というより
MOD(A1,0.01)がアウトなのはわかってたんだけど
MOD(A1*100,1)なら補正かかってセーフだと思ってたw

 # 逝ってください > わたし

==================================

たとえば、A1:0.07 のとき

 甲: A1*100=INT(A1*100) ⇒ TRUE
 乙: MOD(A1*100,1)=0 ⇒ FALSE

でもって、

 丙: A1*100-INT(A1*100)=0 ⇒ FALSE

で、意外と(?)

 丁: ROUND(A1,2)=A1 ⇒ TRUE
 戊: ROUND(A1,2)-A1=0 ⇒ TRUE

う~む。

MODはおいとくとしても
(A=B) と (A-B=0) の結果が違うってどんな罠ですか…。

「いつ誤差が出るか」じゃなくて「いつ補正がかかるか」について
挙動まとめたサイトってないのかしら?

qa5878812

  • _Kyle(1291004)
  • 2010/05/09 (Sun) 23:40:04
■エクセル(マクロ含む)で、列の並べ替えはできますか?
http://bekkoame.okwave.jp/qa5878812.html

なんか変なのが湧いてると思ったらやけに古いアカw

いったい何があったのやら…。とし幾つなんだろ? 

追記

さすがに削除されたか…。
↓コイツね。
http://bb.okwave.jp/user.php3?u=122680

5年ぶりに現れてなにやってんのかと思ったけど
よく考えれば、
5年間ずっと、ひたすら削除され続けてたって可能性もあるか。

re2:qa5854013,re2:qa5810888

  • _Kyle(1291004)
  • 2010/05/09 (Sun) 18:13:05
まとめて^^;;

■re:qa5854013

>Excel系の回答者は大なり小なり…

そですね。
地雷と判っててわざわざ踏むのはマヌケですし。

私も以前はExcelで地雷リスト作ってました。
今シーズンは片っ端からブラックならぬ「ブロック」リストに放り込んでますけど…w

回答前には質問者の素行調査もします。
 #どちらかというと、スキル調査・環境調査の方が主ですけど。
 #Ctrl+Shift+Enterできない人だなとか、VBAアリな人だなとか、Excel2007だなとか… 

ただ、どんな質問者であれ
「(できるだけ)きちんとした回答をする」/「単にスルーする」
の二者択一で、
「警戒モードできちんとした回答をしない」って発想は……(ーー;)

================================

■re:qa5810888

>タイミングからしてこれっぽいですよね。

そですね。

パッと見た感じでは通りそうにも見えますけど…
飛び先のアフィが引っ掛かったか、
それとも参考URLの"04092101"がTel番号誤認されたか。
以前ISBNコードが引っ掛かった例もありましたし。

【 桁数の大きい0始まりの数字列は要注意 】

人間が議論してるように受取れる「確認中」という表現が良くないですよね。
「サポートの確認待ち」にすればいいのにw

>質問のポイント

まぁ質問を偽装した「クレーム」なんでしょうけど
本当に「指摘」でアウトになったんならメール通知が来ますから
普通はそっちに返信しますよね。やっぱ誤解っぽい。

---------------

でも、ジツは、
「確認中」/「編集・削除」以外にも「非明示審査」ってありますよね。
わたし、しばしば引っ掛かって(ぇ、ときどき慌てます(ぉ

回答した後で
「しまった! 今は審査リストに入ってるんだった orz」
みたいな…。

案外そちらのことかも。

================================

>#「じゃなんで回答してるの?しなけりゃいいだけなんじゃ?」
>#と思ってしまうのはワタシだけ?

いえ、わたしも思います。つか、たぶんそれがふつーじゃないかと(苦笑

もしかすると「自分がカテ背負ってる」ような気分になってるのかもしれませんねw
「常連としてては、ご質問者さんだけの問題でもないので(ママ)」みたいな。

re:qa5810888

  • end-u(1037781)
  • 2010/05/09 (Sun) 16:24:51
回答してる方々は意外とオトナな意見が多いですね。
#一部ネガティブ発言除くw
私には質問のポイントがどこにあるのかちょっと読み取れませんでしたけど。

>ところで、もし質問者のいってる「審査」というのが
>「この回答はサポートで確認中です」(だっけ?
>のことだったら、#2さんの言うとおりスクリプトにハジかれてるだけだよね。
http://bekkoame.okwave.jp/qa5810647.html
タイミングからしてこれっぽいですよね。
となると質問の前提条件が既に...

自意識&被害者意識がちょと過剰気味な方を助長させるようなスレ?
#この類のレスを読むたびに
#「じゃなんで回答してるの?しなけりゃいいだけなんじゃ?」
#と思ってしまうのはワタシだけ?

re:qa5854013

  • end-u(1037781)
  • 2010/05/09 (Sun) 15:28:20
性格までメモろうとは思いませんが、私もやってます。
私の場合は一発でブラックリストですがw
回答履歴も質問一覧もシートに取得なので
条件付き書式でマーキングしたり。
いろいろ活用できますよね。
ブラウザ使わずテキストベースで閲覧できますから
仕事中のチェックに便利ですし。(ぇ
#その割に回答頻度が上がらないのは何故?
でもExcel系の回答者は大なり小なりそんな感じの事やってるんじゃないでしょうかね。

『きちんとした回答』する気がないんだったら投稿しなけりゃいいのにね。

qa5810888

  • _Kyle(1291004)
  • 2010/05/08 (Sat) 20:53:04
■なぜ、間違いを指摘すると審査対象になるのでしょうか?
http://bekkoame.okwave.jp/qa5810888.html

今朝も別記事で貼りましたが…。

#11 御大

>IT系は、分からない人間が、その回答を信じて、
>墓穴を掘るのは自業自得だと思いますが。

そですね。

「列幅固定」で「セル内に改行を挿入したい」ときに
「列幅を調整する」マクロ押し付けられて納得させられちゃうのも自業自得ですね。
再掲 : http://bekkoame.okwave.jp/qa5046087.html

===============================

>中には、コードを見ただけでダメ出しする人間がいるのには恐れ入ります。

恐れ入るのはこちらです。

http://www.clausbrod.de/cgi-bin/view.pl/CoCreateModeling/MacroSubsetSum

このVBAコードを見て

 >一体、何のために、numbers(i) = Int(1000 * Rnd + 1)
 >が必要なのかとか疑問が残り、それで、コードとしては試していません。
 >
 >#9様の内容と同じことかな?
 >>=INT(2*RAND())

なんて、ぶっとんだ寝言吐いたのはどなたでしたっけ?
http://bekkoame.okwave.jp/qa5212312.html

何のために必要かというとですね、

 【 課題を解くためには、まず課題が必要だからです! 】

ソコは、解いてるのではなく、乱数で「課題」作ってる部分です。

=============================

えっと、しばらく「落ち着いてた」んですが
昨日のバタバタでつい「ぶり返しちゃいました」

2つ貼って少しスッキリしましたw
やっぱ「捌け口」っているよね。

=============================

ところで、もし質問者のいってる「審査」というのが
「この回答はサポートで確認中です」(だっけ?
のことだったら、#2さんの言うとおりスクリプトにハジかれてるだけだよね。

「議論」や「指摘」なら
「審査」どころか一方的に「編集・削除」されたのち管理からメールでお叱りがくる by 経験者(ぇ

qa5854013

  • _Kyle(1291004)
  • 2010/05/08 (Sat) 20:42:31
■質問者の性格(?)をメモしたいのですが。
http://bekkoame.okwave.jp/qa5854013.html

>自分の回答にフィードバックしなかった場合は、
>イエローマークに相当することが多いです。
>そういう人間には、ほとんど、レスはしませんが、
>する場合は警戒モードで【 きちんとした回答はしません。 】
>そのようにして続けています。
 ※強調イルカ

なるほど!

qa5182121のように
コード出すわけでもなく、かといって撤退するでもなく
のらりくらりと薀蓄垂れ流してるときってのは

 「どうぞわたくしめに有難いコードをお授けくださいませ」

と質問者がひれ伏して拝むのを待ってるわけですね。

わたしはてっきりアタマおか(ry のかと思ってました。

qa5856799

  • _Kyle(1291004)
  • 2010/05/06 (Thu) 20:48:00
■エクセルの関数について
http://bekkoame.okwave.jp/qa5856799.html

#4

>できるだけ分かりやすく簡単な方法

!?

どこが「分りやすく」「簡単」なのかと小一時間(ry

----------

事前にソートするんだったら
A列最優先、B列降順で並べ替えれば
MAXはVLOOKUPで足りちゃうし
MINもINDEX(MATCH+COUNTIF-1)みたいなアプローチで終わり。
作業列なんかイラね!

----------

作業列使うんだったら
 =IF(ISNA(MATCH(A2,A3:$A$99,0)),B2,MAX(VLOOKUP(A2,A3:$C$99,3,0),B2))
みたいな感じで下方について調べて
最大・最小値を初出行に出しとけば、両方VLOOKUPで終わり。
事前ソートなんかイラね!

----------

>データが多い場合には配列数式やSUMPRODUCT関数を使いますと
>どうしても動作が鈍くなります。

一般論としてはそうだけど
代替案が決して軽そうに見えないという…w

「配列数式が重い理由」判ってんのかな?
いったい何回舐めるつもり?

「電卓で足し上げるのは大変なので、ここはソロバンで」
とかそういうハナシ?

----------

あとね、もしかしたらピンとこないかもしれないけど

【 「支店の一覧」は作らなくてもあるよ、普通 】

----------

「なまあたたかく」ない orz

==============================

Ctrl+Shift+Enterができるなら、何も考えることはないよね。

そうでない場合…

最大値の方は
 =MAX(INDEX(($A$2:$A$99=D2)*$B$2:$B$99,))

で良いとして…

最小値の方は
 =10^10-MAX(INDEX(($A$2:$A$99=D2)*(10^10-$B$2:$B$99),))

少しとりっきー?

↓ここまでする必要があるかどうか、迷うところ。

 =MAX($B$2:$B$99)-MAX(INDEX(($A$2:$A$99=D2)*(MAX($B$2:$B$99)-$B$2:$B$99),))

qa5852217

  • _Kyle(1291004)
  • 2010/05/06 (Thu) 20:04:50
■エクセル関数について質問があります。
http://bekkoame.okwave.jp/qa5852217.html

 =SUMPRODUCT(B1:B5*(A1:A5={"01","02","03","04","05"})*{1,1,1,-1,-1})

閉じない人のようでするー。

カテ違いと放置率には相関あるよね。

qa5811021

  • _Kyle(1291004)
  • 2010/05/06 (Thu) 19:59:48
■エクセル関数を教えてください。
http://bekkoame.okwave.jp/qa5811021.html

まぁ、こういうハナシなんだろうけど…

 =SUMPRODUCT((Sheet1!$A$3:$A$99="ペン")*(Sheet1!$B$2:$AK$2="購入数")*Sheet1!$B$3:$AK$99)

「自分の回答に[お礼]がつくか」は気にしないけど
「先行回答にレスがついてるか」は気にするのよね、わたし。

他所で解決してるかもしれないし、マルチポスト対策。

re4:qa5829569

  • _Kyle(1291004)
  • 2010/05/06 (Thu) 19:50:03
>見た記憶ないけどありましたっけ?

新デザインサイトと旧デザインサイトでプロフデータが別立てなので
あの時点では旧Dのgooからは、新Dのbekkoameのプロフは見れなかったかと…。

で、旧Dのプロフはそのまま残ってたりするわけですが…(ーー;)
 http://hiroba.hoiku-plus.jp/user.php3?u=1037781
 http://hiroba.hoiku-plus.jp/user.php3?u=310600
保育とコレガが残る限りずっとこのまま?

OKWaveでIDとってた人は保育やコレガからも入れるらしいんですけどね。

===============================

>確かにパラメータクエリ持ち出したのはまずかったかなー。

定型業務の場合は、一度作っちゃえばフルオートですし
一番取り回しがいいとは思うんですけどね。

あと、郵便番号データのような2003以前では開けない馬鹿でかいCSVを
手っ取り早く各シートに分割して取り込むのにも重宝してます。

手本orリファ見ながらじゃないとCSV読み込みマクロ書けないわたし orz

>一般操作手順を説明するのはたいへん

■『エクセルファイルを別のエクセルファイルに反映』
http://bekkoame.okwave.jp/qa5105740.html

「手抜き」成功例w

===============================

>実は『マクロも不要』に力点がw

ですよね。そもそも単なるフィルタ案件ですし。

===============================

>まだ締め切られてなくて追加レス可能

ん~、迷うんですけど、一応「解決」してる雰囲気なので。

【回答を期待されてない】のに

 「本当はちゃんとわかってるんです!!11!1!」

って言うためだけに追加投稿するのって、やはり怪答かも…とか。

「何度もすみません!」って
怒涛の連投で先行回答埋めちゃう人もいますし…。

■縦列の計算(SUMPRODUCT?)
http://oshiete.goo.ne.jp/qa/5179148.html
あえてgooを、それも回答順で貼ってみるテスト。…3分(ーー;)

■エクセル 別シート参照の簡単入力方法
http://bekkoame.okwave.jp/qa3438635.html
若気の至りw 締切られた後で管理に追加してもらいました。
シングルクォートって、いまでもよく忘れるのよね(ぇ

「データベース」? 
あーなんかそーゆーたてまえもありましたっけ(棒読み)

そういうわけで、【他で解決してる場合には】
ポカに気付いてもあえて「グシャ」の汚名に甘んじ……事実だ orz

re3:qa5829569

  • end-u(1037781)
  • 2010/05/06 (Thu) 00:16:31
>のWHEREの前の全角スペースを半角に直したら
ありゃ。ほんとだ。失礼しましたorz
「揚げ足とり」なんてとんでもない。真っ当なご指摘ですm(_ _)m
『度々ポカ』って事前断りしてるやつですね(違?

>データベースクエリのマクロ記録をとろうとすると必ず落ちることが判明 (ーー;)
そちらも壊れてますね^ ^;
共存環境って脆弱なのかしらね...

>当日の【怪答日誌】を一応再掲
あれ?見た記憶ないけどありましたっけ?
ぁー。確かにパラメータクエリ持ち出したのはまずかったかなー。
一般操作手順を説明するのはたいへんですしね。
食いつきもなかったですし。
でも実は『マクロも不要』に力点がw

ぇっと...
まだ締め切られてなくて追加レス可能な点が『希望』かなっ

re2:qa5829569

  • _Kyle(1291004)
  • 2010/05/05 (Wed) 21:53:16
「re?:qa5829569」で、
「Sample」が「SQL構文エラー吐くよ」とか言ってる件ですが
完全に「揚げ足とり」でした…orz

 "SELECT [担当者], [訪問先] FROM [Sheet1$] WHERE ([日付]=?)"

のWHEREの前の全角スペースを半角に直したら
環境A(WindowsXP/Excel2000,2003,2007共存)の2007でちゃんと動作しました。

気付け! > わたし

============================

関係ないですが、環境Aの2003は、
データベースクエリのマクロ記録をとろうとすると必ず落ちることが判明 (ーー;)
2000や2007は大丈夫なのになんで2003だけダメ?

qa5871821

  • _Kyle(1291004)
  • 2010/05/05 (Wed) 19:25:24
■COUNTIF 文字列の検索
http://bekkoame.okwave.jp/qa5871821.html



んっと、まぁ

●甲: =IF(COUNTIF(C1:E1,"◎")>=2,"◎",IF(COUNTIF(C1:E1,"△")>=2,"△","〇"))

みたいに
「条件を一つずつ丁寧に調べ」るのが
「オーソドックス」なのかもしらんけど…。

IFでやると
条件が増えた場合に数式の【構造】から変えなきゃなんないし
2003以前だとネスト制限も意識しなくちゃなんないし
何より【戻り値があちこちに散らかっちゃう】よね。

=========================================

この質問のように【排他的な条件で多方分岐】する場合は

●乙: =CHOOSE(1+1*(COUNTIF(C1:E1,"◎")>=2)+2*(COUNTIF(C1:E1,"△")>=2),"〇","◎","△")

とか

●丙: =INDEX({"〇","◎","△"},1+1*(COUNTIF(C1:E1,"◎")>=2)+2*(COUNTIF(C1:E1,"△")>=2))

とかする方が、
明示性や保守性の点で優位な気がするんだけど…きっと誰も賛成してくれないよね orz

=========================================
 
●甲

=IF(
 COUNTIF(C1:E1,"◎")>=2,
  "◎",
  IF(
   COUNTIF(C1:E1,"△")>=2,
    "△",
    "〇"
  )
)

↑こういう【構造】と

●乙

=CHOOSE(
 1+
 1*(COUNTIF(C1:E1,"◎")>=2)+
 2*(COUNTIF(C1:E1,"△")>=2),
  "〇",
  "◎",
  "△"
)

↑こういう【構造】や

●丙

=INDEX(
 {"〇","◎","△"},
  1+
  1*(COUNTIF(C1:E1,"◎")>=2)+
  2*(COUNTIF(C1:E1,"△")>=2)
)

↑こういう【構造】で

どちらがより「シンプル」で「判りやすい」かってハナシ。

…きっとみんな「甲の方が判りやすい」って言うんだろうなぁ。
甲が「ゴチャゴチャして気持ち悪い」って思うわたしはアタマ悪いんだな、きっと orz

まぁ【速度】的にはIFが有利なんだけどね。それは百も承知。

=========================================

ちなみに
↓コレ↓は冗談…いや、条件の数によっては実際やるけど(ぇ

●丁: =INDEX({"〇","◎","△"},1+SUM((COUNTIF(C1:E1,{"◎","△"})>=2)*{1,2}))


↓コチラ↓はホントに冗談。ここまでやると潰しが効かない。

●戊: =MID("〇◎△",1+SUM((COUNTIF(C1:E1,{"◎","△"})>=2)*{1,2}),1)

=========================================

「わたしはIFが好きなんです!!!」

じゃ、コレ

●己

=INDEX(
 {"〇","◎","△"},
  1+
  IF(COUNTIF(C1:E1,"◎")>=2,1,0)+
  IF(COUNTIF(C1:E1,"△")>=2,2,0)
)

=========================================
…どんだけIFギライなんだww > わたし

なお、今回挙げた数式の中に「配列数式」は一つもありません。念のため。

re:qa5868988

  • _Kyle(1291004)
  • 2010/05/05 (Wed) 19:11:55
■エクセルのvbaでの検索について
http://bekkoame.okwave.jp/qa5868988.html

あ、先越されたw

>落とし穴

初心者や素人相手に【7行目で】コメントもつけずに
 Worksheets(1)
とかやったら完全に「罠」ですよね。

>コピー&ペーストで貼り付けて、そのまま動くようなつもりでコードは書いていません。

「マズ熟読玩味シテ理解セヨ!」ってことデスネ(ーー;)

価値観・スタンスが180度違うんだから、どうしたって噛み合う訳ないよなぁ
…と妙な感じで納得してしまいましたw

> .Range("A2", .Cells(Rows.Count, 1))
> Ar = Application.Transpose(rng)

これも
「熟読玩味して理解すれば
 そういう些細な点は必要に応じて質問者が自分で修正できるハズ」
ってことなんでしょうね。

=========================

>ここの回答で、すでに思い通りの最高のものがあるのなら
>あえて私のものを直す必要もないと思います。

個人的には、こういう他の回答者に対する軽侮を丸出しにした嫌味ったらしい書き振りが…(ーー;)

re?:qa5829569

  • _Kyle(1291004)
  • 2010/05/05 (Wed) 19:04:44
■エクセル2007をつかっています。「会社で何月何日に、誰がどこへいった
http://bekkoame.okwave.jp/qa5829569.html

そ、それは……ついにパンドラの箱を開けてしまいましたね orz

わたし的には完全に黒歴史になってるんですが(ぉぃ
やっぱ【自分のことだけ知らん振り】ってわけにはいきませんよね (T_T)

懺悔の前にまずレスを。

=============================================

■>私のメイン環境では、なぜかこのようにしないとパラメータ設定ができなくなって

あり?

「sample」ですが、わたしの手元では
環境A(WinXP/Excel2000,2003,2007共存)の2007でも
環境B(WinVista/Excel2007単独)の2007でも
「SQL 構文エラー」が出るんですが…そういうハナシではなくって?

ちなみに、本サイトの「sample0」は環境Aで問題なしです。

キチンと読んでないので
もしかすると何か「揚げ足」とってるのかもしれませんが…^^;;

つか「SQL 構文エラー」とか言われた時点で
 「サード懸命に追いますが……スタンドに入りそうです」
な気分になっちゃうわたし orz

■>さらに2003では手作業でxls、mdbなどの[外部データ取り込み]が出来ない

そ、それは…壊れてますね、たぶん。
わたしのところでは環境Aの2003でちゃんとできますから…。

でも、共存環境で再インストールするとなると
まず2007から外さないといけませんしねぇ…確かにめんどくさい。

■#2

ご覧になったかもしれませんが
当日の【怪答日誌】を一応再掲

  --------------------------
  【2010/04/16】
  単なるフィルタ案件が何故か荒れてるので
  見かねてつい口を出したら
  例によって例のごとく半歩遅れた orz

  しかも甲案って…
  素直にカウントアップして
  INDEX(MATCH())で引く場面だろ>私

  1037781さま、お久しぶりです<(_ _)>
  …ってgooユーザには見えないのよね。

  ◎個人的にはパラメータクエリがベストな解決だと思うんですけど、
   難易度がQ&A向きでない気がするんですよね。
   あと、インストール状態に依存するし。
   といいつつ外部サイトのリンクだけ貼ってお茶濁したことも…^^;;
  ◎フィルタオプションは…
   レイアウトが制約されるあたりが初心者向きでない気がして
   提案を躊躇してしまいます。変にこだわる人が多いので…。

  ってこれもご覧になれませんね、きっと。
  --------------------------

=================================

■以下懺悔コーナー

「海より深く」に分割移転
http://abyssinia.bbs.fc2.com/?act=reply&tid=2820395#5293705

qa5868988

  • end-u(1037781)
  • 2010/05/05 (Wed) 17:41:53
■エクセルのvbaでの検索について
http://oshiete.goo.ne.jp/qa/5868988.html?order=asc

#5
>私は、コピー&ペーストで貼り付けて、そのまま動くようなつもりでコードは書いていません。

そりゃそうなのかもしれませんが
ちょっとした手違いってあるでしょうに。
自分で落とし穴掘って掘りっぱなしで穴埋めないと誰も遊んでくれなくなると思いますけど :P

>Set rng = .Range("A2", .Cells(Rows.Count, 1))
>Ar = rng.Value
>Ar = Application.Transpose(Ar)

.Cells(Rows.Count, 1).End(xlUp)のつもりだったのでしょうか?
それに
Ar = Application.Transpose(rng)
とすればver2000の配列制限にも引っ掛からないのに
あえて rng.Value を Ar で一旦うけるのは何かの罠なのでしょうか。

...っていうレスは一発削除でしょうからスルー。

qa5829569

  • end-u(1037781)
  • 2010/05/05 (Wed) 15:46:23
■エクセル2007をつかっています。「会社で何月何日に、誰がどこへいった...
http://oshiete.goo.ne.jp/qa/5829569.html

再会スレッドですね :D
でもちょと反省点が。(というより言い訳かな)

Sub sample() 'サンプルブック作成コード。
  Dim ws  As Worksheet
  Dim fName As String

  fName = Application.DefaultFilePath & "\TMP20100505.xlsx"
  With Workbooks.Add(xlWBATWorksheet)
    With .Sheets(1).Range("A1:C4")
      .Rows(1).Value = [{"日付","担当者","訪問先"}]
      .Rows(2).Value = [{"4月1日","佐藤","A"}]
      .Rows(3).Value = [{"4月2日","鈴木","B"}]
      .Rows(4).Value = [{"4月2日","加藤","C"}]
    End With
    .SaveAs fName
    'パラメータクエリ例。
    'A1セル変更時更新。基本的には手作業で設定できるのでマクロ不要。
    Set ws = .Sheets.Add
    ws.Name = "QueryTable例"
    ws.Range("A1").Value = "4月2日"
    With ws.QueryTables.Add(Connection:="ODBC;DSN=Excel Files;DBQ=" & fName, _
                Destination:=ws.Range("A2"))
      .CommandText = "SELECT [担当者], [訪問先] FROM [Sheet1$] WHERE ([日付]=?)"
      .FieldNames = False
      .RefreshStyle = xlOverwriteCells
      .AdjustColumnWidth = False
      With .Parameters.Add("日付", xlParamTypeDate)
        .SetParam xlRange, ws.Range("A1")
        .RefreshOnChange = True
      End With
      .Refresh False
    End With
  End With
 
  Set ws = Nothing
End Sub

パラメータクエリの設定だけなら上記でいけるハズ。

本サイトコードでは、
まずパラメータ設定なしで一度.Refreshしてからパラメータ設定し直してます。
>  .CommandText = "SELECT [担当者], [訪問先] FROM [Sheet1$]"
>  .FieldNames = False
>  .RefreshStyle = xlOverwriteCells
>  .AdjustColumnWidth = False
>  .Refresh False
>  .CommandText = .CommandText & " WHERE ([日付]=?)"
>  With .Parameters.Add("日付", xlParamTypeDate)
>    .SetParam xlRange, ws.Range("A1")
>    .RefreshOnChange = True
>  End With
>End With
>ws.Range("A1").Value = "4月2日"
実は、私のメイン環境では、なぜかこのようにしないとパラメータ設定ができなくなってしまってるのです。
#[winXP/xl2003,2007]混在環境。
さらに2003では手作業でxls、mdbなどの[外部データ取り込み]が出来ない...orz
アップデートか何かのタイミングで、てっきり皆がそうなんだと思ってました。
ひょっとして私のだけが壊れてる?...いつか直さなきゃ。

あと、『2007』って書いてあるんだから...
拡張子を.xlsxにしたり、FileFormatを明示してあげたり、とか。
それに『セキュリティの警告』についても説明してないし。配慮が足りないなあ>end-u

qa5856099

  • _Kyle(1291004)
  • 2010/05/03 (Mon) 23:23:32
■VLOOKUPでもう一工夫必要なのですが・・・
http://bekkoame.okwave.jp/qa5856099.html

#1さん

ん~、教育的配慮ってやつデスカ?

==================

#2さん

ん~

【 「食番」が参考画像通り「連番」になってる 】

っていう解釈は無理があるんじゃないかなぁ…。
たとえそうだとしても、私ならそういう前提を明記します。

あと、参照が一つズレてマス。

==================

#3さん

ん~、まぁ、いいんだけど…。

【違う部分だけ】切り分けた方が明示性高くない?

 =VLOOKUP(F3,$A$3:$D$22,IF(VLOOKUP(F3,$A$3:$D$22,4)=0,3,4))

qa5854769

  • _Kyle(1291004)
  • 2010/05/02 (Sun) 00:46:47
■Excel2007の[表示形式]ユーザー定義の追加について
http://bekkoame.okwave.jp/qa5854769.html

御大、その「ご計算」は……マッタクチガイマス orz

kb213904で言ってるところの[セルの書式の組み合わせ]とは、
おおざっぱにいうと
【[スタイル]の数】+【[ユーザー定義の表示形式]の数】+【書式の組合せの数】 ですが、
【書式の組合せの数】は
「現に各セルで使用されているパターン」のことで、
「使用している書式の有り得る組合せの数」ぢゃありません。
 ※ただし、UsedRangeと同じく、一度増えると保存するまでリセットされない

それから、デフォルト除いちゃいけません(汗
=============================================
で、「ごピント」もズレてます。

質問は
「Excel2002ならOKなのに、なんでExcel2007ではダメなの?」
ってことで、おそらく【MSサポートの回答がBA】デス。

[ユーザー定義の表示形式]の上限は、御大御自身もおっしゃってるように
kb213904で言ってるところの[セルの書式の組み合わせ]とは【別個に】制限があります。

ヘルプによれば

 ●Excel2000
  >ユーザー定義の表示形式
  > 使用可能メモリに依存
 ●Excel2003
  >ユーザー定義の表示形式
  > 200 ~ 250 (インストールされている Excel の言語バージョンによって異なる)
 ●Excel2007
  >ブックの数値の形式
  > 200 ~ 250 (インストールされている Excel の言語バージョンによって異なる)

とあり、Excel2003 ⇒ Excel2007 で 増えていません。

ちなみに、手元の環境でテストしたところでは
デフォルトを除いて新規に追加できる[ユーザー定義の表示形式]の数は
 ・Excel2000 197
 ・Excel2003 207
 ・Excel2007 207
ですが、
この上限は【インストール状況によって変動する】ことが
上記ヘルプで明示されています。

質問文では
 >既にユーザー定義を200超追加している
とありますから、

単純に、質問者さんの環境において
 ・Excel2007で追加可能な数よりもExcel2002で追加可能な数の方が多い
 ・Excel2002で設定していた表示形式が2007形式に変換した時点で溢れた
だけの環境依存トラブルかと。

そういうわけで
「ユーザー定義で使用するメモリが
 Excel2007で使用するメモリ容量をオーバーするから追加できない」
という【MSサポートの回答でFA】なんじゃないかと、素人ながら愚考する次第。

Excel2002環境がなくテストできないのと、いぢめられそうな悪寒がしたのスルー。

Re2:qa5827577

  • _Kyle(1291004)
  • 2010/05/01 (Sat) 07:59:05
■>随分と基本的な事を端折ってらっしゃるようでしたね

ドキっ(^^;;;;;;;;;;;;;;;;;;
以下自分のことは棚上げw

【素人】はともかく【初心者】の場合は、マナーとか以前に
「土日使って入門書1冊読み切ったら、大抵のことはできるようになるよ」
って勧めたくなることも正直ありますね。
人に教わるにしても「先へ進むための最低限の基礎知識」みたいなものはありますし。

…「土日使って入門書1冊読み切った」レベルから成長してない気がする私(汗

 >Range("A:1")
 www

■>お礼はありがたいですけど…

「お礼」⇒「補足」まで13分って…www

re:qa5827577

  • end-u(1037781)
  • 2010/05/01 (Sat) 00:30:36
BA...ね?

>もしよろしければ、また教えて下さい。
>
>近々、締め切らせて頂くつもりです。
>その際には、ベストアンサーとさせて頂きます!

ギャクにこれでレスるのを一瞬躊躇しました^ ^;
なんかポイントでツられる?っみたく思われるとヤですよね(ぇ
とはいえ、できるだけ最後までお付き合いさせて頂くのがポリシーでやってますから
何とかお応えしました。

実はさっき書いたように
>最後に日本語書かずにコードだけでレスしてるのは...
のパターンだったのでありました。

オマケ話)
改行の問題にしても、変数を含んだ文字列の作り方にしても、
随分と基本的な事を端折ってらっしゃるようでしたね :(
「改行」については、基礎を学べる解かり易いサイトを紹介しようかと探してみて、
ちょうどいいのがあったんです。
ttp://www.officepro.jp/excelvba/basic/index2.html
ところが
...ん?
Range("A:1")って...orz
違うとこでダメ出し。
#今度メールで教えてあげましょ :)

でも
>まだ試していませんが、早速試してみたいと思います。
>試しましたら、改めて、こちらにてご連絡致します。
お礼はありがたいですけど、そのタイミングでは不要な気がするのは私だけでしょうか。
どうせなら試してからレスポンス頂いても充分間に合うと思うのですけれども :D

qa5827577

  • _Kyle(1291004)
  • 2010/04/30 (Fri) 19:03:06
■OnTime 使用時のプロシージャへの引数の与え方、その記述方法を教え
http://bekkoame.okwave.jp/qa5827577.html

とりあえずBAでよかったけど…ん~。

やっぱり
 >グローバル変数を利用する事を想定しているのでしょうか。
って思いますよね??

アンダーバーでの折り返しを知らなかったところから考えても
なんか根本的なところで誤解がありそーな…。

ちなみに、もし私であれば

 >教えて頂いた記述の、シングルorダブルクォートが、とても繁雑であるため、
 >本当に、これで良いのだろうかとも思ってしまっているのですが、
 >教えて頂いたアドバイスの記述には、問題はないでしょうか?

のところでブチ切れて撤退してます(苦笑
さすが(?)ですね(^^

re:qa5808716

  • _Kyle(1291004)
  • 2010/04/29 (Thu) 23:02:53
ソレ、見てましたよ。
例によって守備範囲外ぽかったので、
ヲチしてただけで支援すらできませんでしたが…(汗

■>実際試してないんだろうなぁ

実際、
 <ふぉんと さいず = 7><すとろんぐ>

 試せよ!

 </すとろんぐ></ふぉんと>
って言いたくなることってありますよね…つか、多いですよね^^;;

でも、私は基本的に質問者に対して「あまあま」なので、
「そーゆー質問者が増えるのは、試す価値もない怪答が多すぎるからだろ」
って怒りのベクトルが反転しちゃったり。

私なんて
なぜかデフォルトで「信用しない」にチェックが入るようなのでw
【証拠】画像とか【証拠】動画とか必須です(苦笑

■>粘着気質っぽくみられたかも

これもよっくわかります^^;;;;

もっとも、私の印象だと、end-uさんて
クールというかアッサリした感じで、よく自制されてるなぁと…。

私は「ぽい」どころか自他ともに認める粘着なので(ぉ
気をつけて…いるつもりなんですが…orz

私が自分の「率」に拘ってるのは
「自主回答制限」という意味合いが強かったりします。
逆上して連投・多答すると、すぐ数字落ちちゃいますからね。

■追記

qaの後ろのスラッシュ、もし面倒でしたら抜かなくてもかまいませんよ。

回答/ユーザNoさえあれば、ブラウザの右クリックメニューから
bekkoame,goo,コレガ,桶具search,自製解析つーる,それぞれ一発で開ける
…ようにしようと思ってるので…ずっと前から。 orz

qa5808716

  • end-u(1037781)
  • 2010/04/29 (Thu) 02:33:40
■Excel2007のSheets.Copyコマンド不具合?
http://oshiete.goo.ne.jp/qa/5808716.html?order=asc

#ある意味「晒し」っぽいですが^ ^;
すでにnoname。回答歴あるので1ポイントquestionerではなさそうです。何が起きたんだか。
回答内容がうまく伝わらない事はままありますが実際試してないんだろうなぁ的なレスポンスでした。
「わざわざ」追っかけなくても良かったんだけど...
http://excelfactory.net/excelboard/excelvba/cfs.cgi?word=135406&logs=21.txt
なんか粘着気質っぽくみられたかもしれなくてやだなー・・・的な反省orz

qa5838918

  • _Kyle(1291004)
  • 2010/04/28 (Wed) 06:23:23
■EXCEL VBAである定数と列内の和が等しいものを抜き出す方法が知り
http://bekkoame.okwave.jp/qa5838918.html

私はナントカの一つ覚えみたいに
再帰再帰さいきさいきさいきさいき……って繰り返してるけど
英語の専門書どころか日本語の専門書も読まずに試せる手法として推してるだけで
別に再帰が万能とか思ってるわけじゃないです、ホントに。

動的計画法が有効なケースもあるし
ソルバーで足りるケースもあるし
数式で足りるケースもあるし
玄人が専用アプリ作らなきゃ足りないケースもあるし
それでもムリなケースもあるし…。

というわけで、「試してできなかった」という補足がない以上、
おそらく#1氏提示の過去ログやソルバーで足りたんだろうということでスルー。

で、#1氏提示の過去ログ
■【Excel】エクセル 複数の数値データの中から合計すると任意の値にな
http://oshiete.goo.ne.jp/qa/2707845.html
で紹介されてる
■ナップザック問題をExcelで解く
http://www.geocities.co.jp/SiliconValley-Oakland/8139/
について。

1.手当たり次第法
 ○手軽
 ●解が一つしか出ない
 ●たいていの場合再帰の方が速い

2.総当たり法
 ○コードが判りやすい
 △解が全部出る
 ●【PCの能力以前に】すぐ桁が溢れるので要素数増やしにくい
 ●(再帰に較べて)死ぬほど遅い

3.動的計画法
 ●解が一つしか出ない
 ●平均的には再帰の方が速いハズ
 ○解が少ない場合や無い場合にはたぶん有利
 ○同じ(?)動的計画法でも
  qa5212312で私が移植(?)したDPSforExcelよりは速い、たぶん。
  アルゴリズムの問題というよりコーディングの問題で(苦笑

  …いや、だってさ、
  元コードで、2^117とか当たり前のように定義してるのに、いったいどうしろと?
  つジャグ配列

な感じかなぁ。 

qa5851193

  • _Kyle(1291004)
  • 2010/04/27 (Tue) 23:04:00
■エクセルのページレイアウト
http://bekkoame.okwave.jp/qa5851193.html

質問内容とか回答内容とかは正直どーでも(げほげほ)なんだけど、
#2さんの参考画像、スゴくわかりやすいなぁ…なんか目からウロコ(ぇ

qa5846630

  • _Kyle(1291004)
  • 2010/04/27 (Tue) 23:01:17
■たびたびすいません。VBAです。
http://bekkoame.okwave.jp/qa5846630.html

んっと、ワークシート関数でいえばFLOORとかも使えるけど…

それ以前に、

■VBAについて質問です
http://bekkoame.okwave.jp/qa5846488.html

をみると、
最終的には「割り切れるかどうか」を判定するわけだよね。

「時刻の一致判定」と同じく「10進小数の一致判定」ってどうも胡乱な気が…。
ちゃんと補正かかるのかしらん??

どうせDouble型で考えるなら
いきなり10^15とか掛けて整数化した方が安全な気がするんだけど、どうなんだろうね?
…ごめんなさい、わかりません orz

qa5845647

  • _Kyle(1291004)
  • 2010/04/27 (Tue) 22:58:06
■Excelの関数についての質問です。
http://bekkoame.okwave.jp/qa5845647.html

#4
ウケ狙いなの? それとも本気でソレ?

それだけの長さがあったら、
テーブル逆順に並べ替えることだってできるよ。

#2氏
うん、コレはまぁ、許容範囲内。
でも、私ならCHOOSEで選ぶなぁ。
IFで切り分けると、後出しで表の数が増えたとき困る。

あと、検索値から微小値引いちゃうのはダメ?
=VLOOKUP(【検索値】-1/10^5,CHOOSE(【表番号】,【表1】,【表2】),2,1)

qa5844577

  • _Kyle(1291004)
  • 2010/04/27 (Tue) 22:52:41
■条件を「特定の期間に送信した場合」としたい
http://bekkoame.okwave.jp/qa5844577.html

作れますし、作って差し上げてもいいんですけど

>マクロを組むしかないですか?
>頑張ってみます。

とおっしゃってるところに自分からしゃしゃり出て
中途半端な駄コード押し付けてくほど無恥じゃないもので…。
「マクロなら自力でもっとちゃんとしたコード書けます!!」
とか言われると凹んじゃいますし。

もし「自分では書けなくて、実は書いて欲しい」状況でしたらスミマセン。

qa5837036

  • _Kyle(1291004)
  • 2010/04/27 (Tue) 22:50:30
■EXCEL 計算空白セル/0(ゼロ) 無視する方法
http://bekkoame.okwave.jp/qa5837036.html

#2,#4さんが揃って読み違えたせいで
#3氏が唯一当たってるというアレな流れ。

IF(ISERROR(D7/E7),0,D7/E7)
って… orz

まぁ、動かなくはないからいいや、って思ってたら
実は

=B7/((D7/E7)+(F7/G7)+(H7/I7)+(J7/K7)+(L7/M7)+(N7/O7)+(P7/Q7)+(R7/S7)+(T7/U7)+(V7/W7)+(X7/Y7)+(Z7/AA7))

だとか。orz
#3氏の形に書き換えてくとエラいことになるよね。

でも
>解決しました!
ってあるからとりあえずスルー

=================================

ところで、OKWaveでは
COUNTIFSとかSUMIFSとかもち出す人は結構いる割に
IFERRORってあまり見かけないけど、普及してないのかな?

結果が数値で、演算誤差とか気にしなくて良い場面だと
 =IF(【長くて重い計算式】=0,"",【長くて重い計算式】)
とする代わりに
 =IFERROR(1/(1/【長くて重い計算式】),"")
とかもできたりするんだけど…。

qa5835139

  • _Kyle(1291004)
  • 2010/04/27 (Tue) 22:44:55
■エクセルの日程?工程?実績?管理等について
http://bekkoame.okwave.jp/qa5835139.html

#1氏は大人げないけど…ごめん、私も吹いちゃった。

qa5830746

  • _Kyle(1291004)
  • 2010/04/27 (Tue) 22:43:42
■Excel2003で2つの条件で入力規則リストを作りたい
http://bekkoame.okwave.jp/qa5830746.html

#3ってもしかして、入力規則の元リストを
【入力欄の各行ごと個別に】用意するってハナシ!?

qa5813939

  • _Kyle(1291004)
  • 2010/04/27 (Tue) 22:36:10
■エクセル初心者です。数値の移動についてです。
http://bekkoame.okwave.jp/qa5813939.html

んみゃ? #1さんは何に引っ掛かったんだろう?
"初心者"という文言が気に入らなかった?

私の感覚…というか基準では
結構好感の持てる質問者さんなんだけどなぁ…。

>初心者の私でもできる物でしょうか?これからマクロ等覚えるところです。
>私には無理そうでしたら無理とおっしゃって頂いてもかまいません。

SS撮って、アップして、お礼して、閉じるだけの知性と技術(wがおありなので
おそらくは入門書買った当日に可能になるかと思います。

それだけのことができない人がけっこういるんだよなぁ。

qa5684309

  • _Kyle(1291004)
  • 2010/04/26 (Mon) 18:58:13
■EXCELでコロン「:」を使用した時にシリアル値にならないようにしたい
http://bekkoame.okwave.jp/qa5684309.html

コレ、私いなかった時期なので半角チルダ拝見して初めて知ったのですが
 ・なんだか良く判らんが、御大の薀蓄は相変わらず長い
 ・なんだか良く判らんが、#3氏の言い様は酷い
 ・なんだか良く判らんが、end-uさんサラっと火消しカッコイー
と思っただけで
質問内容それ自体の方は
 5桁ポイント級の常連が3人も揃ってこんだけもつれてるんだから
 きっと私に判るレベルのハナシじゃないんだろーなー
 素人考えだと、マクロで数式入れたあと表示形式を文字列にしとけば良さそうな気がするけど
 それじゃきっとマズいんだろーなー
とか思って読み流してました。

改めて読んだら……これぞ【最悪】ですね。

それに「EnableEvents切りっぱ」って。
まぁ、私もやらかさないとは断言できないけど(ぉぃ
問題はそういうとこじゃなくて(いや、それも問題だと思う)
なんでこうも自信満々に赤の他人罵倒できるかなーってとこですよね。

まぁ、私はモジュールレベル変数の開放忘れや初期化でしくじる人なんで(コラ 以下自粛しますけど…。

qa5811984

  • _Kyle(1291004)
  • 2010/04/26 (Mon) 18:49:38
■エクセルの表示形式で
http://bekkoame.okwave.jp/qa5811984.html

「型は入力した時点の表示形式によって決まる」
「表示形式を変更しても既存値の型は変わらない」
というだけのハナシ、それも超頻出案件なのに
20時間と6投稿を要する桶愚クオリティ orz

qa5811864

  • _Kyle(1291004)
  • 2010/04/26 (Mon) 18:45:21
■計算によってセルの値に変化があった時にマクロを実行する
http://bekkoame.okwave.jp/qa5811864.html

「特定セル範囲の再計算を捉えてイベントドリブン」
というのも、
ちょっとズルすればやってやれなくはないんだけど…

数式見て、
「$A$1って、たぶん揮発性関数が入ってるよね?」
と読み切った私の勝ちw \(^o^)/

再計算捉えるもなにも、V列は毎回再計算されちゃうよね。

「変更(Change)」でも「再計算(Calculate)」でもなく純粋に「変化」を捉えるのであれば
隠しシートに転記してCalculateの度に差分チェックするみたいなアプローチになるのかなぁ?
モジュールレベル変数に置いとくのはどれくら信頼できるんだろ?

qa5811717

  • _Kyle(1291004)
  • 2010/04/26 (Mon) 18:38:30
■excelの条件付統計?について
http://bekkoame.okwave.jp/qa5811717.html

OR/ANDで揉めだしたらもつれるよね。
三項になると回答者側でも自信満々で間違える人いるしなぁ…。

で、
質問は"○"使ってるのに、
回答で"〇"使った数式出すのは何かの罠ですか? >#1氏

qa5798604

  • _Kyle(1291004)
  • 2010/04/25 (Sun) 23:48:51
■連続になってないオートフィル
http://bekkoame.okwave.jp/qa5798604.html

A1セル: 1
A2セル: =IF(SUM(--(MOD(ROW(A1),27)={0,8,17})),MAX($A$1:A1)+1,"")
A2を下方にフィル。

たぶんコレだけのはなし。
質問者の素行がアレなのでスルー。

qa5787833

  • _Kyle(1291004)
  • 2010/04/25 (Sun) 23:44:27
■こんにちは。エクセルでお聞きしたいことがあります。例えばA列に100
http://bekkoame.okwave.jp/qa5787833.html

#1-2氏
----------------
組み合わせは気が遠くなるくらいあるので
VBAでマクロを組まないと
出来ないのではないでしょうか?

やはりマクロを組まないと実現は不可能です。
ただ各列100項となると膨大な計算量と数値になりますね。
----------------

ん~っと、100^5=10^10 って、
VBAで処理するなら一瞬で終わるスケールだよね。
ソルバーでもおそらく足りる。

でも私が見た時点で「終わってる」感じだったのでスルー。

qa5777369

  • _Kyle(1291004)
  • 2010/04/25 (Sun) 00:01:07
■エクセルについて
http://bekkoame.okwave.jp/qa5777369.html

「なんでナップ【ザ】ックと濁るんだろう?」
という揚げ足取りは置いといて…。

一口にナップサック問題と言っても
部分和と違って「瓶詰」の方は
(どの程度の厳密さを期待するかにもよるけど)
実用的なスケールの課題を解けるものを、
素人がゼロから書くのは多分無理。

だから、#1さんのご回答はこれでベストなんだけど
「ナップサック問題だから解けない」というニュアンスで書くと
「部分和問題」⇒「ナップサック問題」⇒「解けない」
と短絡する人がまた出てくる気が…。

例えるなら、
 ・RSA暗号を解読する⇒素人の知識と環境では無理
 ・132300を素因数分解する⇒小学生の宿題
とか
 ・任意の閉曲線について内部の面積を求める⇒素人の知識と環境では無理
 ・半径3cmの円の面積を求める⇒小学生の宿題
みたいなハナシで、結局、スケールとリソースの問題。

で、
「Excelで処理するような実務上の課題について実用的な解が得られるか」
という観点から言えば、大雑把に言って、
 瓶詰⇒×
 部分和⇒○
という認識でFA?

「解が多すぎて書ききれない」というのはまた別のハナシ。

ところで、参考URLにある
http://supermab.com/index.html
の作者は、
http://bekkoame.okwave.jp/qa5212312.html
で支援(?)してくださった#9,13さまと同一人物。
当時から気付いてた…というか過去回答で自ら晒して(違反)らっしゃたんだけど
こういう人の前で寝言吐いてる御大・芋他約1名って…

と、ぶち切れて醜態さらしてる自分のことは棚に上げて蒸し返してみたりw

qa5838187

  • _Kyle(1291004)
  • 2010/04/24 (Sat) 01:30:49
■エクセル 関数(カウント?)について
http://bekkoame.okwave.jp/qa5838187.html

いったい何が起きたのか誰か説明して~~!!(>_<)

確かめずに式だけ見て納得しちゃったのかなぁ…。
のっけから回答者を信用しないタイプの質問者さんもどうかと思うけど
信用しちゃいけないタイプの回答者もいますよね、実際。

======================

#1さんもなぁ…。
不正値がない前提で、
種類を数えるだけで足りると判断されたのかもしれないけど、
それならそれで一言書くべきじゃないかと…。

#3さんのは私にとってそれこそ目からウロコだったり。
MINは思いつかなかった……思いつくべきですね orz

ちなみに私は
 =IF(PRODUCT(--(COUNTIF(B1:B3,{"A","B","C"})=1)),"","×")
みたいな方向で考えてました。

「分かりやすく」書くんだったらこう?
 =IF(AND(COUNTIF(B1:B3,"A")=1,COUNTIF(B1:B3,"B")=1,COUNTIF(B1:B3,"C")=1),"","×")

qa5843871

  • _Kyle(1291004)
  • 2010/04/24 (Sat) 01:02:29
■エクセルの関数について、質問させて頂きます。
http://bekkoame.okwave.jp/qa5843871.html

質問者さんの
=COUNTIF(A2:A50000,AN9)
が前方一致でカウントするような認識もヘンだけど…

#1氏はともかく#2さんまで、
=COUNTIF(A2:A50000,"*"&AN9&"*")
って…。

「"ミカン"で"ナツミカン"がヒットする問題」
は触れちゃいけないところですか、そうですか。
    
(投稿前に、内容をプレビューして確認できます)