トップページtech
1002コメント360KB

Excel VBA 質問スレ Part40 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2016/02/19(金) 02:49:44.77ID:BQQ9mWtn
ExcelのVBAに関する質問スレです

                   ___
       ___      /____ヽ      ____
      /____\    | |´・ω・`| |    /___ヽ
      .l |´・ω・`|  ニX二 . ̄ ̄ ̄  二X二  |´・ω・`| l 俺たちに任せろ
      !、 ̄ ̄ ̄  ヽ   |       |    /    ̄ ̄ ̄/
       ヽ_/ヽ、  ヽ__)  \__/\_/.   /_/  ノヽ_/
             ̄                ̄ ̄

このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。

コードが嫌な人・作成依頼が嫌な人は別スレ建ててください。

※前スレ
Excel VBA 質問スレ Part39 [転載禁止]2ch.net
http://peace.2ch.net/test/read.cgi/tech/1448624205/
0083デフォルトの名無しさん2016/02/23(火) 06:08:52.47ID:lspxNReJ
VBAではワークブック以下のオブジェクトで検索や並び替えといった汎用的なメソッドを提供してるから、
自分でアルゴリズムが作れないならとにかくシートに貼り付けるところから考えればいい。
0084デフォルトの名無しさん2016/02/23(火) 07:11:53.03ID:tgtxIEFp
>>82
「逐次」
0085デフォルトの名無しさん2016/02/23(火) 07:53:21.43ID:x6PbDvqz
配列の検索は自分で組まなければならないのですね
csv取り込みがいささか面倒ですね
Excelでcsv開いても無理ですよね?
0086デフォルトの名無しさん2016/02/23(火) 08:05:21.80ID:lTXJyxC1
>>85
ExcelシートにCSVを展開してからだったら楽だよ。
0087デフォルトの名無しさん2016/02/23(火) 08:33:55.17ID:dOD1hw4a
>>86
いつも通りの取り込みでよいのですか?
0088デフォルトの名無しさん2016/02/23(火) 09:43:37.39ID:lTXJyxC1
>>87
ええ、いつも通りです。
0089デフォルトの名無しさん2016/02/23(火) 20:15:06.28ID:BnRj76xX
findでセルにあるデータを探して転記するのと
配列を全て検索してデータを探すのはどちらが早いですか?


又配列に重複がないか調べる方法ってありませんか?
0090デフォルトの名無しさん2016/02/23(火) 20:30:17.62ID:lspxNReJ
>>89
検索のみで言えば、全検索で一つの値を探すならFindの方が早い。
列や行が決まっているなら配列にした方がいい。FindもMatchも遅い。

重複は条件にもよるけど基本的には総当たりしかない。こちらは配列にした方がいい。
0091デフォルトの名無しさん2016/02/23(火) 21:43:21.45ID:BnRj76xX
総当りだと
ループでかなり時間はかかりませんか?
0092デフォルトの名無しさん2016/02/23(火) 21:57:12.88ID:tgtxIEFp
重複がひとつもないかは n × n だからサイズには気をつけた方がいいね。
0093デフォルトの名無しさん2016/02/23(火) 22:01:35.23ID:tgtxIEFp
配列のサイズがでかいとしても、各要素のとりうる値の範囲が狭いなら工夫のしようはある。
または配列をソートしておくか。
どちらも条件によっては悪手になりうる。
0094デフォルトの名無しさん2016/02/23(火) 22:04:04.73ID:BnRj76xX
配列はソートしてあり
500件と固定してある場合なら楽ですか?
0095デフォルトの名無しさん2016/02/23(火) 22:08:03.06ID:tgtxIEFp
ソートしてあるんなら隣り合う2項の比較で済むんじゃん
n × n とは比べものにならないでしょ。
0096デフォルトの名無しさん2016/02/23(火) 22:10:32.56ID:Fn93HfAc
状況によりけりだが、重複はCOUNTIFとかのワークシート関数でやった方が早い気がするぞ
0097デフォルトの名無しさん2016/02/23(火) 22:14:54.95ID:tgtxIEFp
>>94
言っとくけど、長さ1000の配列で重複の個数を数える(つまり途中でやめない)という条件で、
なおかつ余計なオーバーヘッドのあるプログラムを使って約600msだぞ。(Core i5)
考えすぎても無駄じゃね?
0098デフォルトの名無しさん2016/02/23(火) 22:27:42.52ID:BnRj76xX
>>97
ありがとうございます

まあソート後に配列内の数値を計算する程度ですね
配列でApplication.WorksheetFunction.RoundDownは使用できましたよね?
0099デフォルトの名無しさん2016/02/23(火) 22:35:08.14ID:tgtxIEFp
>>97のはソートされてない状態(つまり n × n )での数字ね。
0100デフォルトの名無しさん2016/02/23(火) 23:19:55.40ID:KN7Xij53
>>89
ディクショナリーを使うと良いよー
0101デフォルトの名無しさん2016/02/24(水) 09:14:07.67ID:y1msax47
ディクショナリーとコレクションの使い分けが
イマイチよくわからない
どっちも似たような事出来るよね
0102デフォルトの名無しさん2016/02/24(水) 09:38:25.57ID:tgj274Po
ディクショナリーって重複管理ができるんだっけ。
でもワークシートから大量に取り込むのに向いてるかどうかは知らない。
また、重複のないデータのセットを構築するという目的を達成した後、何かしら処理をするんだろうが、
汎用性としてどうなのかも知らん。
まあ使ってみて判断しよ。
0103デフォルトの名無しさん2016/02/24(水) 19:47:18.17ID:ZfArvAzS
ttp://iup.2ch-library.com/i/i1605741-1456310708.png
すいません、オートシェイプを操作するマクロを作りたいのですが
このようなパターンのとき、
画像のD,Eを逆の位置にマクロで動かすことは可能でしょうか?
コネクタは繋がっている前提です。
0104デフォルトの名無しさん2016/02/24(水) 20:32:17.95ID:/kngbYQw
>>103
コネクタが オートシェイプに接続されてる状態なら そのシェイプを移動するだけでいい
たとえばこんな感じ(D と E の位置が逆になる)

Set D = ActiveSheet.Shapes("Rectangle D")
Set E = ActiveSheet.Shapes("Rectangle E")

'Dの位置保存
Save_LEFT = D.Left
Save_TOP = D.Top

'Dの位置を変更
D.Left = E.Left
D.Top = E.Top

'Eの位置を変更
E.Left = Save_LEFT
E.Top = Save_TOP
0105デフォルトの名無しさん2016/02/24(水) 23:53:18.08ID:qODGIMFE
C#のwebbrowserコントロールでlE操作するのとVBAでIE操作するのとでは
どっちの方が実装楽ですか?
0106デフォルトの名無しさん2016/02/25(木) 00:55:43.58ID:hzvqnnNR
>>101
確かDictionaryは参照設定しないと使えないけど値の書き換えが出来て、
Collectionはそのまま使えるけど値を変えるときは一度Removeしてからもう一度追加しなければいけないとか
そんなのがあったような
0107デフォルトの名無しさん2016/02/25(木) 05:54:34.79ID:BSgblPDp
>>106

へー、ちょっと違うところもあるんだね
勉強になった、ありがとう

でもディクショナリーはファイルシステムオブジェクトと同じで
Microsoft Scripting Runtime (scrrun.dll)を参照設定すると便利になるけど
参照設定しなくてもCreateObjectすれば使えるよ
0108デフォルトの名無しさん2016/02/25(木) 06:29:43.10ID:s0Et/ttK
Dictionary型はCollection型と違って順番が保証出来ないのも相違点だな。前者は数字をKeyに出来るけど後者は無理ってのも。
順序が必要なものはCollection型で、重複しない事が重要なものはDictionary型にするといいのかも。

ところでKeyとItemが相互に検索可能な型ってないかな。
DictionaryでもItemからKeyを割り出すには総当たりする必要があるんだよね。
だから相互に検索したい場合は必ずKey,ItemとItem,Keyの二種類作らないといけないのが難点。
0109デフォルトの名無しさん2016/02/25(木) 07:02:34.77ID:mCYGSnMq
>>108
クラスモジュールで自分好みなの作ったほうがよくないか?
0110デフォルトの名無しさん2016/02/25(木) 07:49:00.88ID:L7nuKMZK
Itemも重複しないってか
01111032016/02/25(木) 10:28:36.61ID:GyIo03vy
>>104
こらタコ。
そのまんまじゃないか。

そうじゃなく、
シェイプがたくさんあり、それらがコネクタでつながっていたとき、
すべてのコネクタが交差しないように自動配置したいとき
それはどういうコードを書けばいいのかな、と考えているのですが。
0112デフォルトの名無しさん2016/02/25(木) 10:38:33.06ID:zmh5F+ll
指定コネクタにくっついてるシェイプ全部のLeftを同じにすればいいんでないの?
01131032016/02/25(木) 11:04:27.27ID:GyIo03vy
>>112
それだと
1つのシェイプから2つのコネクタが分岐するように下につながっている場合に
2つのシェイプが重なってししまわないですか?

シートに存在するすべてのコネクタでそれが分岐してるものかどうか判定する方法があればいいのですが。
シェイプやコネクタに便利なプロパティとかないですか?
0114デフォルトの名無しさん2016/02/25(木) 11:15:21.22ID:L7nuKMZK
>>113
分岐してる場合のずらしかたをまず定義しろ。
下方向や横方向のスペースの有無にもよるのか?
0115デフォルトの名無しさん2016/02/25(木) 11:32:52.44ID:mCYGSnMq
>>113
座標がわかるんだから
交差してるか計算すればいいじゃん
中学生レベルの数学
0116デフォルトの名無しさん2016/02/25(木) 12:47:36.07ID:6DvGm9a+
>>111
そもそも>>103の時点できちんと要件を提示していなかった癖に、回答者に対して悪態をつくとか
君の親御さんはマトモな躾も出来なかったのか?
要するにシェイプの移動ではなくコネクタを交差させないシェイプの配置を考える問題なら、まずは一つのシェイプは最大でいくつのコネクタに繋がってるのかとか、それがループする事は有り得るのかとか、そういう基礎的な条件提示がなけりゃだれにも回答できねーよ
(例えばループの中と外にあるシェイプ同士を何処とも交差せずに繋ぐのは不可能だしね)
そこまでややこしくない単純な樹形図みたいなやつなら
上流から順に見ていって縦横際限なく使えば良いだけじゃん
0117デフォルトの名無しさん2016/02/25(木) 12:54:41.32ID:5AA/JocP
キレてるんですか?
0118デフォルトの名無しさん2016/02/25(木) 12:59:54.85ID:YW3/y7UA
せやな
0119デフォルトの名無しさん2016/02/25(木) 13:53:09.83ID:UlMFP09h
>>108
Collectionも順番が保証されなかった気がする。
0120デフォルトの名無しさん2016/02/25(木) 20:29:01.53ID:2hov+RIN
>>108
もう15年以上 VBA 使ってたけど Collection でキーが指定出来るのを今知ったわ OTZ…
でもキーが存在するかを確認するすべがない(全て検索するかエラートラップで判定するしかない)
なんかこう言う大事なところが抜けてるんだよな、MSって

>>119
追加するときにシートの追加と同じように追加する場所も指定できるみたいだから、順序は保持されるっぽい
http://vbafrs.com/common/doc/main.php?contentsno=201003
0121デフォルトの名無しさん2016/02/25(木) 20:56:13.16ID:s0Et/ttK
>>120
むしろエラーで返すからキャッチすりゃいいだろ的な思想の様な気がする。
他のエラーが入り込まない単位に関数化してエラーで返す方が処理速い事もあるし(シートの指定とか)、
そうでないと調べられないものもある。(配列の次元数カウントとか)
0122デフォルトの名無しさん2016/02/25(木) 20:59:59.00ID:EtQljN7P
配列の次元数カウントとLBound値の変更が公式にできないのは本当に怠慢。
0123デフォルトの名無しさん2016/02/25(木) 21:13:17.22ID:2hov+RIN
>>121
> むしろエラーで返すからキャッチすりゃいいだろ的な思想の様な気がする。
それが気にくわないって話
ファイルオープンみたいにどうしようもないケースならわかるが、ExistKey( ) みたいなのをつけるだけでいいのに
てか、キーでアクセスできる仕様にしたら普通そういう手段用意しないか?
0124デフォルトの名無しさん2016/02/25(木) 21:27:38.70ID:EtQljN7P
>>123
Count( ) でいいんじゃない?
0125デフォルトの名無しさん2016/02/25(木) 21:28:26.65ID:EtQljN7P
>>124はもし追加するなら、って意味ね
0126デフォルトの名無しさん2016/02/25(木) 21:53:09.39ID:s0Et/ttK
設計思想の問題が絡むから、あれもこれもって言い出したらキリが無いしなー。
Collection型は列挙が目的であって、Mapする事が目的のDictionary型とは違うだろうし。
0127デフォルトの名無しさん2016/02/25(木) 23:29:01.95ID:ZlQNTHYh
>>126
> Collection型は列挙が目的
なら Key なんて要らんだろ
やってることがちぐはぐなんよ
0128デフォルトの名無しさん2016/02/25(木) 23:43:14.65ID:EtQljN7P
うーん、ちょっと使い道が狭いなあ
0129デフォルトの名無しさん2016/02/26(金) 05:08:03.17ID:ep0rFBnF
>>127
WorkbooksやWorksheetsを人間の管理単位(=Key)で指定できたら便利だけど、
それが何番目であるかと常に結びつける必要性は薄いだろ。

あくまで人間の管理単位だから重複さえしなければマシン側は混乱しないし。
0130デフォルトの名無しさん2016/02/26(金) 07:19:07.84ID:RsrUGJ3O
>>129
>WorkbooksやWorksheetsを人間の管理単位(=Key)で指定できたら便利だけど、
>それが何番目であるかと常に結びつける必要性は薄いだろ。

WorkbooksやWorksheetsを扱うのにKeyを指定するのは
それが何番目であるかにKeyを使うのと同じくらい必要性が薄いかな。

普通そのWorkbookやWorksheets固有の処理を行うときは多態性で始末するから。
0131デフォルトの名無しさん2016/02/26(金) 07:53:52.54ID:SzRtePL2
ちょっとその多態性の定義を言ってみてくれないかな
0132デフォルトの名無しさん2016/02/26(金) 08:20:16.24ID:RsrUGJ3O
>>131
どう言う意味で?

WorkbookやWorksheetで個別の処理を行うのに多態性を使うと言ったら
そのWorkbookやWorksheetの役割に合わせて振る舞いを変えるように
コンポジションやデリゲーションを使って組むようなことをこちらは想定してるけど。

他に何か捉えようがあるということ?
0133デフォルトの名無しさん2016/02/26(金) 08:28:40.81ID:SzRtePL2
同じ型のインスタンス毎の振る舞いの違いを指して「多態」と呼ぶのは一般的じゃない。
0134デフォルトの名無しさん2016/02/26(金) 08:44:27.62ID:RsrUGJ3O
>>133
同じ型?何を言ってるんだ?
0135デフォルトの名無しさん2016/02/26(金) 11:14:38.11ID:J5IqE0Yl
シェイプがたくさんあってある条件のものはその大きさを変えるコードを書いているんですが
問題は大きさが大きくなったとき他のシェイプと重なることを避けたいけどその判定が困難。
なにかいい方法はありますか?

単純に大きさを変えるときに重なるかどうか調べるときに他のすべてのシェイプと
For Each tmpShape in Activesheet.Shapes
を使って1つ1つ比べるのですが
もし重なりそうなら重なられるシェイプを右下方向に移動したいのですが
その移動によってまた「連鎖的に」重なる可能性があるわけじゃないですか?

言ってる意味はわかりますかね?
0136デフォルトの名無しさん2016/02/26(金) 11:16:23.46ID:J5IqE0Yl
x その判定が困難
o その方法が困難
0137デフォルトの名無しさん2016/02/26(金) 11:17:50.55ID:J5IqE0Yl
つまり要はシェイプ同士が重なることは絶対に避けたいわけです。
0138デフォルトの名無しさん2016/02/26(金) 11:47:55.97ID:SzRtePL2
>>134
君は>>130で何を言ってるんだい?
WorkSheets(1)とWorkSheets(2)に異なる処理を施すときに多態性で始末するんだろう?
0139デフォルトの名無しさん2016/02/26(金) 12:04:49.44ID:l/+aTNAI
大きさ変えたときにずらすんじゃなくて
処理の最後に重なりがなくなるまでDoループすればどうかな。
0140デフォルトの名無しさん2016/02/26(金) 12:12:44.30ID:ZKuQ06pR
>>138
そうだよ。それで?続けて。
0141デフォルトの名無しさん2016/02/26(金) 12:16:28.41ID:J5IqE0Yl
>>139
アドバイスありがとうございます。
でもそれってアルゴリズム的には同じじゃないですか?

もしよろしければ具体的なコードを教えてほしいのですが。

たとえばシェイプがActivesheet.Shapes.Count個あって
大きさを変える場合は右にincX、下にincYだけ増やしたいとします。
重なるかの判定の関数は、
Function isOverlap (shp1 as Shape, shp2 as Shape) as Boolean
とでもすると
Doループの中のコードはどんな感じになりますか?
0142デフォルトの名無しさん2016/02/26(金) 12:20:47.73ID:x5+an1W2
お前ら本当によく暴投ばかりのキャッチボール続けられるな
0143デフォルトの名無しさん2016/02/26(金) 12:25:05.60ID:SzRtePL2
>>140
>>131の質問に答えよ
0144デフォルトの名無しさん2016/02/26(金) 12:27:35.29ID:ZKuQ06pR
>>143
だからそうだって答えてるじゃない。
それにどんな矛盾があるのか聞いてるんだけど。
だから続けてと言っている。
0145デフォルトの名無しさん2016/02/26(金) 12:35:08.69ID:ZKuQ06pR
ああ、多態性の定義ね。

むしろこっちが、そっちがどう思ってるのか聞きたいわ。

同じクラスで作成したインスタンスの振る舞いの違いを「多態性」と呼ばないということは、
.NetでいうDelegate、つまりVBAでそれはないが同じ結果を求めることが出来るCall By Nameとかは
「多態性」とは呼ばないと言っているんだよね。

これは何でだ?
0146デフォルトの名無しさん2016/02/26(金) 12:44:05.19ID:ZKuQ06pR
>>144
ネットで見てたらちょうどいい文言があったので、これを使わせてもらう。

「実行される処理の実体が、コールされたメッセージではなく、メッセージを受けたオブジェクトによって決定される性質」のこと。

VBAでは継承が使えないので移譲とか委託と言われている方式を使う。

それを持って多態性と呼ぶということでいいか?
0147デフォルトの名無しさん2016/02/26(金) 12:56:50.89ID:SzRtePL2
>>146
ああ、それでいいよ。悪かった。
こっちは「WorkSheetオブジェクトが属するクラスを実行時に変えて多態するほげふがな方法」の話かと期待していた。
0148デフォルトの名無しさん2016/02/26(金) 17:17:06.66ID:m7cX7XjE
昇順、降順、ユーザー設定の並べ替えがされたかマクロで検出できませんか?
worksheet_Changeじゃわかりませんよね?
0149デフォルトの名無しさん2016/02/26(金) 19:54:13.01ID:J5IqE0Yl
シェイプがいっぱいあって
それをCollectionに入れるとき
各シェイプのLeftプロパティとTopプロパティをこの順でソートして並べ替えるには
いい方法はありますか?

ひょっとして全部自分でソートのコードを0から書かないといけませんか?
0150デフォルトの名無しさん2016/02/26(金) 20:07:18.31ID:SzRtePL2
ソートのコードを書くのはかったるいかも知れないけど、汎用的なものを一度作ってしまえば、いろんなとこで使える。
0151デフォルトの名無しさん2016/02/26(金) 20:13:56.67ID:ep0rFBnF
>>146
問題はその「メッセージを受けたオブジェクト」によって、
「始末する」としている>>130の主張がどういう意図なのかなんだけどな。
0152デフォルトの名無しさん2016/02/26(金) 20:54:08.51ID:ep0rFBnF
>>149
ソートアルゴリズムならWorksheetに一回吐き出せば優秀なのが使える。
0153デフォルトの名無しさん2016/02/26(金) 20:59:38.60ID:faygSoUQ
俺は何度もチャレンジしたけどVBAで汎用性のあるソート関数は書けなかったな
良い書き方があるなら教えてほしい
0154デフォルトの名無しさん2016/02/26(金) 21:11:11.85ID:SzRtePL2
>>153
サイトは覚えてはないけど、VBAでのクイックソートのサンプルは結構上がってる。
難しさは求める汎用性の程度にもよるだろうけど。
0155デフォルトの名無しさん2016/02/27(土) 00:59:46.12ID:RZH3xb+7
>>149
これはよく読むと、一般的なSortプログラムは必要なさそうだね。

「Collectionに入れるとき」と明言しているということは、まだCollectionには何も入ってないときのスタートになるので、
最初の1回目は普通にaddして、その後はCollectionに積み立てたShapeを捜査し、Leftプロパティが
追加対象の同プロパティより大きくなった、またはLeftプロパティが同じでTopプロパティが追加対象の同プロパティより大きくなったとき、
その前に追加してやればいいんじゃないかな?
0156デフォルトの名無しさん2016/02/27(土) 18:10:19.33ID:AaTWQGJl
>>137
あらかじめセルの幅をshapeが被らないぐらい大きくしといて、
あとからセルの幅を自動で調整すれば良いだけでは?
0157デフォルトの名無しさん2016/02/27(土) 20:28:26.50ID:IvmFPQhF
Workbooks("1.xls").Activate
Worksheets("Sheet1").Select
これを1行で記述する方法はありますか?
0158デフォルトの名無しさん2016/02/27(土) 20:35:34.69ID:LKPjzWRE
>>157
Workbooks("1.xls").Activate: Worksheets("Sheet1").Select
もし1命令でって言うんなら無理
そのブックをSelectだけ出来ればよいなら
Workbooks("1.xls").Worksheets("Sheet1").Select
で出来る
0159デフォルトの名無しさん2016/02/27(土) 20:40:06.27ID:B9pq57vq
>>157
Workbooks("1.xls").Worksheets("Sheet1").Select

こういう事じゃ無いのか?
0160デフォルトの名無しさん2016/02/27(土) 20:40:54.65ID:IvmFPQhF
>>158
ありがとうございました。すっきりしました。
0161デフォルトの名無しさん2016/02/27(土) 20:44:40.73ID:IvmFPQhF
>>159
ありがとうございました。
0162デフォルトの名無しさん2016/02/27(土) 20:45:04.02ID:GQuhwfDJ
クリップボード使って値コピーするコード書く奴は滅びてほしい
0163デフォルトの名無しさん2016/02/27(土) 20:50:07.41ID:B9pq57vq
>>162
VBAマクロのHowToサイトで「マクロの記録機能を使ってみましょう」という教え方してる限り無くならないだろうな。
既存の有名なサイトを凌駕するようなExcelVBAマクロのサイトを作る以外にない。
0164デフォルトの名無しさん2016/02/27(土) 22:14:34.86ID:TnvXsjWd
>>162
もうちょっと品ぞろえを増やしてさー、〜べからず集とかないの?
0165デフォルトの名無しさん2016/02/27(土) 23:35:53.32ID:qno9RqRg
>>162
べつにいーじゃん
それでうごくんだから
0166デフォルトの名無しさん2016/02/27(土) 23:55:03.39ID:TnvXsjWd
他のアプリでもコピーが発生してたらどうなるんだっけ?
0167デフォルトの名無しさん2016/02/28(日) 00:04:29.01ID:wJzAdt4L
>>164
変数名は一文字にするべからずとか、
このスレでコードは書くべからずとか?
0168デフォルトの名無しさん2016/02/28(日) 00:41:52.16ID:b7qY0//8
おちんちん
0169デフォルトの名無しさん2016/02/28(日) 00:56:15.60ID:sl3mg8QG
目的によって選択すべき手段が変わるし、どんな環境で使うものかで適切・不適切が変わる。
それを考慮せずに推奨・非推奨の話を始めると宗派の問題もあって泥沼になる。
0170デフォルトの名無しさん2016/02/28(日) 02:49:21.29ID:/1Tq8dlS
Right関数を使って文字を抽出したいのですが
よねさんの解説では

 myStr = "ABCDEFG"
  Range("B3").Value = Right(myStr, 3)

一度変数に置き換えて抽出していますがわずらわしので
A1セルなどのセルに記載された数値や文言をダイレクトに指定して
文字を抽出するにはどうすればいいのでしょうか?
0171デフォルトの名無しさん2016/02/28(日) 02:51:41.53ID:/1Tq8dlS
>>170
これを書いて投稿したとたんに思いつきました!ww
Sub aa()
Range("B3").Value = Right(Range("a1"), 3)
End Sub
これでできるのですね。事故解決!!
0172デフォルトの名無しさん2016/02/28(日) 02:58:01.82ID:/1Tq8dlS
よねさんの解説は回りくどいので正直むかつきます 
あと例文に考える余地が隠されていて考えないと例文が理解できないようになっていたりするので急いでいると非常にむかつきます。 
複数のレベルで例文が記載されてたらもっと使う人が増えると思うが
私は極力見ないようにしています。
0173デフォルトの名無しさん2016/02/28(日) 03:02:16.63ID:/1Tq8dlS
回りくどい解説に振り回されると時間がもったいない!!
0174デフォルトの名無しさん2016/02/28(日) 03:09:34.52ID:sl3mg8QG
・よねさんって誰だよ。
・ここはお前の日記帳じゃないんだ。チラシの裏にでも書いてろ。
・そんな低レベルな事すら分かってないのに緊急でマクロ作るとか悪手過ぎるだろ。
0175デフォルトの名無しさん2016/02/28(日) 06:44:27.28ID:3hiq91mT
よねさんを知らないのか?
0176デフォルトの名無しさん2016/02/28(日) 09:45:37.94ID:emPXsfmM
「よねさん」でググったらすぐ出てきたけど、これ個人サイトだろ。
ぜいたく言っちゃいかんと思う。
0177デフォルトの名無しさん2016/02/28(日) 10:46:32.90ID:5Fk6wisR
>>156
どういいうことでしょう?
シェイプの話をしているのになぜセルの幅の話になるのでしょう?
0178デフォルトの名無しさん2016/02/28(日) 11:14:42.81ID:jDjzCPWr
>>172
悪いけどプログラマー向かないと思う。
0179デフォルトの名無しさん2016/02/28(日) 11:30:36.79ID:kYd0kHZJ
よねさんは知らんがエクセルVBAの解説をプログラマーしか理解出来んような文章で書いてたら文句言われんのも無理はないけどな
0180デフォルトの名無しさん2016/02/28(日) 12:44:17.68ID:5n5R60tK
解説記事に限らず情報発信は難しい。
誰ともわからないターゲットに向けて書くんだから。

>>178
急にどうした?話が飛躍してるぞ。
0181デフォルトの名無しさん2016/02/28(日) 12:51:47.81ID:awPHDJ6K
>>172
月末の深夜という時間を考えると
切実な思いではないかと勘ぐってしまう
0182デフォルトの名無しさん2016/02/28(日) 12:57:49.47ID:sl3mg8QG
月末の仕事で切羽詰まってるとしても、それでむかつく相手は無計画な上司か自分の不甲斐なさだろ。
■ このスレッドは過去ログ倉庫に格納されています