▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F) ・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意 ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。 ・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。 ・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。 ・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。 ここは技術的な質問のみで。 ・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。 Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、 どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。 但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。 ここみたいに丸投げはダメですよ。 ・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。 例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。 その上で、どううまくいかないのかを具体的に書きましょう。 エラーが出るなら、何処でどういうエラーが出るのか、 想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。 ・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。 ・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、 チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、 ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。 ・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
>>1 乙です。
ただ、
>>2 の最終行に誤字があります。(以前からある誤字のようです)
>・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
正しくは
・B 書籍や解説サイトの紹介『依頼』はスレ『違い』。ここは技術的な質問のみで。
だと思われますので、次スレ以降で修正をして頂ければありがたいです。
4 :
名無しさん@そうだ選挙にいこう :2013/11/01(金) 21:31:40.62
∩
_( ⌒) ∩__
/ /,. ノ ̄\ / .)E)
/i" / /|_|i_トil_| / / / ̄ ̄ ̄ ̄
|ii.l/ /┃ ┃{. / / <
>>1 乙ぱい
|i|i_/''' ヮ''丿i_/ \____
i|/ ,ク ム"/ /
|( ヽ _,.-===、j、
ゞヽ‐イ/´ ヽ ヽ、
\! ::c:: ! :p
}ヽ __ ノ、_ノ
/ ノ ノ´
>1乙!
>>3 テンプレをちゃんと読んでるやつなんかいないってことだな
>>1 です。内心、ぼろくそに叩かれると思ってスレを見てませんでした
>>3 ありがとうございます、コピペのせいにするわけではありませんが、今まで気づきませんでした。次から直しましょう。
>>10 ・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
12 :
名無しさん@そうだ選挙にいこう :2013/11/03(日) 01:06:29.62
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A1:判定結果 B1:実績 C1:予定 やりたいこと: 実績に値が入っていて、かつ、予定より小さい場合に、「条件付き書式」を使ってA1を色づけしたい。 A1に条件付き書式で下記2つをANDで設定します。(TRUEの場合、赤セルになるとする) しかし赤セルにはなりませんでした。 OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,1)<OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,2) OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, 1)<>"" 検証として、普通にExcelのSheet上に数式を入れてみるとTRUEが返ってきました。 数式自体はTRUEなため、赤セルになるべきでは? また、数式を下記に置き換えると赤セルになったため、ANDが使えないということでもないようです。 AND(B1<C1, B1<>"") よろしくお願いします。
>>10 検索したけど無かった、残念。がんばろう
>>12 解決はシなかったが、問題をまとめてみた
仮にA1セルとして、そこに1と入力。
で、条件付き書式
=(INDIRECT(ADDRESS(ROW(),COLUMN()))<>"")
と
=AND(INDIRECT(ADDRESS(1,1))<>"")
=AND(INDIRECT(ADDRESS(ROW(),1))<>"")
=AND(INDIRECT(ADDRESS(1,COLUMN()))<>"")
この3つは条件付き書式が適用される。
=AND(INDIRECT(ADDRESS(ROW(),COLUMN()))<>"")
=AND(INDIRECT(ADDRESS(ROW()+ROW()-ROW(),1))<>"")
は条件付き書式が適用されない。
=(INDIRECT(ADDRESS(NOW()/NOW(),COLUMN()))<>"")
はいいけど
=AND(INDIRECT(ADDRESS(NOW()/NOW(),COLUMN()))<>"")
はだめ
A2に1と入力して、
=INDIRECT(ADDRESS(ROW()+1,COLUMN()))<>""
はいけるけど
=AND(INDIRECT(ADDRESS(ROW()+1,COLUMN()))<>"")
はだめ
以上のことから、揮発性関数の数か入れ子が関係しているバグと思われる。
14 :
名無しさん@そうだ選挙にいこう :2013/11/03(日) 02:48:12.00
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 セルに画像のパスを入力しておいてパスが書いてあるセルに画像を挿入したいのですが マクロを実行してもなにも起こりません 目的のセルをクリックして以下のマクロを実行しています。 Sub Macro9() ' ' Macro9 Macro ' Dim pic pic = ActiveCell.Value ' ActiveSheet.Pictures.Insert( _ pic).Select Selection.ShapeRange.Height = 238.1102362205 End Sub
>>14 ほとんどマクロの記録だけどこんなんでいけたよ
Sub Macro1()
'マクロでサンプルファイルのパスを書込。適宜書き換えてね
Range("c6").Value = "C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg"
Range("C6").Select
ActiveSheet.Pictures.Insert(Range("c6").Value).Select
End Sub
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 少々 【4 VBAでの回答の可否】 可 B8のセルに 福島県福島市大山1−23グランハイツ456号フクシマ オオヤ こうしたい。福島県福島市大山1−23グランハイツ456号 セルはB8固定でこんな住所データが入っているのですが、このうち末尾のフクシマ オオヤを 削除する方法はないですか?できればVBAでできればうれしいです。 スペースを抜いてカナ文字をすべて削除する事はできるのですが、その場合、グランハイツも消えて しまいます。 フクシマ オオヤは最大で全角8文字のカナと間にスペースが必ず入っています。 こういう場合もあります。 福島県福島市中山7−89フクシマ ナカヤマ こうしたい。福島県福島市中山7−89 ご教授お願いします。
>>16 基本、無理。
が次善策として、
B1=MAX(IFERROR(FIND("号",A1),0),IFERROR(FIND("0",A1),0),IFERROR(FIND("1",A1),0))
C1=LEFT(A1,B1)
こんな感じでB1の数式の中に「よみがなの直前に出てくる文字」を列挙し、それを使ってLEFTで抽出するのがハヤイ
>>12 正確に何がしたいのかよく分からんが
A2:=IF(B2,B2<C2) 下にコピー
とすればいいだけじゃないの?
>>16 正規表現で削除すればいいんでないの?
仕様がはっきりわかんないのでなんとも言えんけど
20 :
16 :2013/11/03(日) 09:08:41.30
>>17 ありがとさんです。
>>17 ありがとさんです。
この場合、"号"が入っていないとダメですね。
どういう文字になるかわからないので難しいですね。
では福島市大山1−23グランハイツ456号フクシマ オオヤ の様な場合、セルに入力されている文字の
終わりから8文字の全角カナ文字だけを削除する事はできますか?
終わりから8文字が漢字や数字の場合はそのまま。
21 :
16 :2013/11/03(日) 09:09:37.89
>>19 正規表現で削除でって具体的にどうするんですか?
>>21 後ろから、カタカナ + 空白文字 を削除すればいいの?
23 :
16 :2013/11/03(日) 12:40:49.37
>>22 レスありがとうございます。
そうです。後ろからスペースを入れて8文字分のカタカナを消したい。
スペースは消せなくてもカタカナを後ろから8文字分だけを消したい。
末尾文字列のパターンを書かないと判定のしようがないから
>>23 最大8文字じゃなくて8文字固定なのね?
なんなのこのラリー
>>23 > スペースは消せなくてもカタカナを後ろから8文字分だけを消したい。
なのに...
> 福島県福島市大山1−23グランハイツ456号フクシマ オオヤ
> こうしたい。福島県福島市大山1−23グランハイツ456号
は、カタカナ7文字しかないぞ?
そもそも、その8文字の条件必要?
27 :
16 :2013/11/03(日) 13:10:04.28
>>24 >>24 パターンは決まっていません。
この場合後ろの8文字を消したい。
福島市大山1−23グランハイツ456号フクシマ オオヤ
この場合
福島市大山1−23グランハイツ456号
なにもしない。
うしろに全角カナが着いている場合だけ削除したいのですが無理っぽいですか。
28 :
16 :2013/11/03(日) 13:11:15.65
>>26 あ、すみません。スペースも入れて8文字です。
いやだからフクシマしかないの? だったらフクシマをfindしてmidで1からその位置まで抜き出しゃいい
質問が下手すぎw
>>28 >あ、すみません。スペースも入れて8文字です。
>>16 であなたが書いてたパターンには
>こういう場合もあります。
>福島県福島市中山7−89フクシマ ナカヤマ
>こうしたい。福島県福島市中山7−89
とありますが、これ"フクシマ ナカヤマ"だと
スペースも入れて9文字ありますけど。
>>16 そもそもその変な形式のデータは何個ぐらい有るの?
33 :
16 :2013/11/03(日) 13:50:51.93
>>31 失礼しました。スペースを入れて9文字の場合も7文字の場合もあります。
また、上で書いたように何も無い場合もあります。
34 :
16 :2013/11/03(日) 13:56:54.78
>>32 この部分だけ抜き出したのでわかりにくくなってしまいましたが、実際はこの住所データの他に
名前、電話、性別など、データが20件ほど書かれたテキストから必要項目を検索して(VBAで)
抜き出していますが、その作業の一部分なのです。1日に20件ほど乃作業ですが、毎日同じ事
やっています。
>>16 7文字だろうが8文字だろうが9文字だろうが正規表現で判断できるだろ
>>16 どういう住所データがあるか10個でいいから書いて
いまのところほぼ2パターンしか出てない
もういいよ 正規表現で解決してる質問を暇だからといつまでも引っ張るな
39 :
16 :2013/11/03(日) 14:49:46.42
>>37 では11件ほどのデータを書いてみました。
住所の後ろに名前の読みガナが付いてしまうデータです。
福島県福島市小金山1−2−3オクヤマ マナブ
福島県会津若松市飯盛1−2イイモリ アイコ
福島県郡山市朝日4−2−5スダ タイゾウ
福島県白河市会津町1−2−6グランドマンション5号コメリ タクヨ
福島県須賀川市旭町1−2シン トミマツ
福島県喜多方市梅竹4−2−8クメ マサハル
福島県二本松市赤井沢1−2−9ハッピーナイト2号室ニホンマツ トシキ
福島県田村市大越町上大越1−2−10タムラ タカ
福島県南相馬市小高区泉沢6−5−11ソウマ ジュンヤ
福島県伊達市荒町1−2−19アラマ荘2号アラマチ ムネキチ
福島県本宮市青田4−2−13アオタ トメ
福島県伊達郡桑折町赤坂1−2−14キン カン
40 :
16 :2013/11/03(日) 14:57:09.10
>>38 正規表現でカナ文字を消すとマンション名なんかも消えてしまうんじゃないですか?
本名じゃないだろうな;
>>40 マンション名が消えたのならお前の正規表現が間違ってるんじゃねーの?
ここはExcelのスレなので正規表現の話はよそでやってくれ
(任意の文字列)+(カタカナ、スペース以外の1文字)+(複数のカタカナと1個以下のスペース) この中から3番目だけを削除したいんでしょ
44 :
16 :2013/11/03(日) 17:37:03.92
>>43 住所の後にくっついてくる人名を削除したいのです。
住所の後にくっついてくる人名を削除したいのです。
住所の後にくっついてくる人名を削除したいのです。
面白いけどそろそろやめてちょんまげ
▼━質問テンプレ (必ず使ってね) ━━━ 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 ワークシート関数だけを使って、1セル内でforみたいな事できますか? RAND()で別々の数字を5個を生成と思って =REPT(INT(RAND()*100),5) こうかいたのですがダメでした。(RAND()は一度しか計算されませんでした)
式を5つ書いてつなげる
>>52 ですよね
>>53 vbaの制限があるPCでもマクロを使う方法を探しています。
セル内でマクロをかきたいんです。
無理そうなら素直に作業列を使うことにします。
セル1個で5つ式を書いてつなげればいいって意味
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 文字コードUTF-8のcsvで保存したいのですが、 なにかいい方法ありますか?
59 :
名無しさん@そうだ選挙にいこう :2013/11/04(月) 07:57:50.19
>>16 大量の住所の扱いは処理の中でも大変難しいもののひとつ。
そのため、GoogleやYahooの住所データとつき合わせたり
専門の会社に委託する。それでも名前は別の項目にしておかないと
ならないし、100%正確になることはない。
だたし、幸いにもこの場合は、後ろに全角カタカナという付いているのが
条件としてついているようなので、ExcelであればVBで正規表現が最善策で
しょう。
61 :
名無しさん@そうだ選挙にいこう :2013/11/04(月) 10:44:24.21
>>57 そだね、
>>60 の方法が一番簡単10秒。
プログラムにしたいならPowerShell使えば1行プログラム
>>59 正規表現はわかったから、具体的にどうするのか、書いてみてちょ。
^(.+)([^ー々ァ-ヶ]+)([ー々ァ-ヶ]+ ?[ー々ァ-ヶ]+)$ こんな感じ?
64 :
名無しさん@そうだ選挙にいこう :2013/11/04(月) 12:33:14.31
65 :
名無しさん@そうだ選挙にいこう :2013/11/04(月) 12:34:37.15
Sub Macro1() Set re = New RegExp re.Pattern = "^(.+)([^ー々ァ-ヶ\n])([ー々ァ-ヶ]+ [ー々ァ-ヶ]+)$" For Each c In Range("A1:A100") c.Offset(0, 1) = re.Replace(c, "$1$2") Next End Sub
Sub Macro1() Set re = New RegExp re.Pattern = "^(.+[^ー々ァ-ヶ \n])([ー々ァ-ヶ]+ ?[ー々ァ-ヶ]+)$" For Each c In Range("a1:a12") c.Offset(0, 1) = re.Replace(c, "$1") Next End Sub
Sub Macro1() Set re = New RegExp re.Pattern = "^(.+[^ー々ァ-ヶ \n])([ー々ァ-ヶ]+( | )?[ー々ァ-ヶ]+)$" For Each c In Range("A1:A100") c.Offset(0, 1) = re.Replace(c, "$1") Next End Sub
末尾全半角カタカナ空白でいいんでないの With CreateObject("VBScript.RegExp") .pattern = "[ア-ンー。-゚ ]+$" For i = 1 To 10 Cells(i, 2).Value = .Replace(Cells(i, 1).Value, "") Next End With
70 :
16 :2013/11/04(月) 15:05:47.90
>>69 ありがとーございます。
これがやりたかったのです。
正規表現についてもこれから勉強しますです。
とても勉強になりました。
回答よろしくお願いします 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 a1〜10、b、c列にも同じく10個ずつ数値が入力されているとします e1セルに「=a1」、e2セルに「=a2」、 e3以降とf、g列にも同じように入力します a、b、c列のコピーがe、f、g列にできるわけですが、このe列の数値を小さい順に並べかえたいのです フィルタでやっても並べ替えできません 戻ってしまいます 今現在はabc列を右クリックでコピー後数値として張り付けてからフィルタで並べ替えてますが、 自動でコピーしてから、フィルタを使用出来るようになる方法はないでしょうか?
>>71 H1=+A1+ROW()/100
I1=RANK(H1,H:H,1)
J1=INDEX(A:A,MATCH(ROW(),I:I,0))
K1=INDEX(B:B,MATCH(ROW(),I:I,0))
L1=INDEX(C:C,MATCH(ROW(),I:I,0))
Hでrow()を足してIで順序とってJからlでバーン
>>72 分かりにくくすいません
今は右クリックでコピーしてから張り付けてます
手動でコピペしてからフィルタで並べ替えしてます
>>73 わかりました
自分の説明がへただったため少し違いましたが教えて頂いた方法を、応用して自力でやってみます
>>77 コピーはそうです
abc列をefg列にコピーさせてからe列の昇順を基準にしてfg列も並べ替えさせたいのです
フィルタだけは手動でもいいのですが
普通にefg列に「=a1」「=b1」「=c1」と入力してコピーさせても
フィルタでは並べ替え出来ないのです
E列=A列ならA列を基準に並べ替えたら良いんじゃないのか? それともA,B,C列は並べ替えしたくないってこと?
SMALL関数とかではダメ?
81 :
名無しさん@そうだ選挙にいこう :2013/11/05(火) 01:44:25.58
そうですねSMALL関数ですね。 E1: =SMALL(A$1:A$10,row()) でしょう。
82 :
名無しさん@そうだ選挙にいこう :2013/11/06(水) 13:41:01.12
相談させてください エクセル2010です 商品のリストがあって、A列に番号が200まで縦に並んでます。 B列に商品名です。140しか商品がなければ141からはA列の番号だけでB列は空欄となります。 仮に140までしか商品がなかったとして パソコンに全く詳しくない人が、そのまま普段の全てを印刷するように印刷ボタンを押したら 141〜200の行までは印刷されないような仕組みが欲しいのです。 何か関数とか方法はないでしょうか?
>>82 関数では無理かと
その1 あらかじめ印刷範囲を 1:140 に設定しておく(B列に商品名を追加したら、その都度印刷範囲を変更する)
その2 オートフィルタ→▼をクリック→テキストフィルタ→指定の値に等しくない→値の欄を空欄のまま[OK]
ぐらいでしょうか。
>>82 vbaでマクロの記録を勉強してみては
ボタンひとつで印刷範囲の設定→印刷
ってできるよ
85 :
83 :2013/11/06(水) 16:39:45.37
>>82 その1の補足(PCに詳しくない人への説明として)
表示形式を「改ページプレビュー」にしておいて、印刷前にデータ範囲の下の方を見て
青い線(印刷範囲の境界)の下のB列に商品名があったら、青い線をドラッグする
っていうのを図解で説明したらいかがですか?
VBAマクロが使える環境なのであれば、印刷専用のボタンをどこかに作るのもいいかも。
マクロ内容は以下の内容で、1〜2行目は省略可(2行目だけ省略は不可)
ただし、プリンタ選択ウィンドウは出ません。いきなり既定のプリンタに出ます。
Option Explicit
Dim r As Long
Sub test()
'シートの最下行B列から[Ctrl]+[↑]でジャンプしたのと同じ操作
r = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
ActiveSheet.PageSetup.PrintArea = "1:" & r '印刷範囲の設定
ActiveWindow.SelectedSheets.PrintOut Copies:=1 '印刷
End Sub
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 ←条件付き書式の話なんで B10からG10まで 912 130 260 94 1015 172 という数字があった時に条件付き書式で最低の数値の文字を赤くしたいんですけど、 新しい書式ルールの ・数式を使用して、書式設定するセルを決定 から 次の数式を満たす場合に値を書式設定で =min(b10:g10) とし、書式で文字を赤いのを選ぶと数字全てが赤くなってしまいます。 どうすればいいんしょ
>>86 =B10=MIN($B$10:$G$10)
=の後はTRUEかFALSEを返すように書かないとだめっす
=min(b10:g10)
だと94が返り、0以外だと全てTRUEが返ってしまう
>>87 ありがとう。
そうか〜、言われてみるとあぁなるほどと^^;
89 :
名無しさん@そうだ選挙にいこう :2013/11/06(水) 21:15:13.45
よろしくおながいします。俺の関数スキルではどうにもなりませんですた。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 10月 11月 12月 計 人件費 150 140 160 450 ------------------------------------------- 消耗品 50 30 30 110 賃借料 70 50 50 170 車両費 40 30 30 100 小計 160 110 110 ぐぬぬ 計 310 250 270 うぐぅ 人件費と経費についての推移表なんですが、 ちょとちがうのは、 当月(10月)以降の月に他のファイルからのリンクで予算の数値が入ってることです。 10月の数値は実績で、11月以降は予算の数値ス。 小計は点線下の、経費分の合計で、計は人権費プラス経費ス。 で、問題は右下の方のぐぬぬとうぐぅの部分なんですが、 予算値を入れたままで、実績だけの数値を表示してほしいとリクエストが。 表は1年間使いますんで、 11月の実績が出たら10月〜11月の計を、 12月の実績が出たら10月〜12月の計を、という形になります。 IFとか考えて見ますたがどうにもまとまりません。 よろしくご教示お願いします。
票が見づらくてすいません、貼り直します 10月 11月 12月 計 人件費 150 140 160 450 ------------------------------------------- 消耗品 50 30 30 110 賃借料 70 50 50 170 車両費 40 30 30 100 小計 160 110 110 ぐぬぬ 計 310 250 270 うぐぅ
>>90 10月 11月 12月 計
人件費 150 140 160 450
-------------------------------------------
消耗品 50 30 30 110
賃借料 70 50 50 170
車両費 40 30 30 100
小計 160 110 110 160(380)
計 310 250 270 310(830)
実績 予算 予算
E7=SUMIF(B9:D9,"実績",B7:D7)&"("&SUM(B7:D7)&")"
E8=SUMIF(B9:D9,"実績",B8:D8)&"("&SUM(B8:D8)&")"
()ないはすべての合計
こんな感じでいいかな
あと「うぐぅ」とかはかなり気持ち悪いです。E7、E8セルと言っても伝わります。
hogeやpiyoでもok。
エクセル2013だとisformulaがあって多分これが使えるんだけど、買い替えは難しいだろうねぇ
http://office.microsoft.com/ja-jp/excel-help/HA102753291.aspx
95 :
92 :2013/11/06(水) 22:07:55.61
>>82 A1 =IF(B1="","",ROW())
でいけるかと思ったけどダメだな…
空白の頁が印刷プレビューに出やがる…
>>91-94 即答でいろいろすんませんです。
>>91 の関数で無事イケますた。
SUMIFなら理解できるので、後々何か変更とかあってもアレンジできそうです。
どうもありがとうございました。
98 :
名無しさん@そうだ選挙にいこう :2013/11/07(木) 13:52:58.43
すみません、ずぶずぶずぶの初心者なのですが質問させてください 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 転居関連の情報をExcelでまとめたいのですが、 Aには年度、Bにはプルダウンリストで各所在地を入力できるようにしてあり、 A B 1年目 ◯◯東京本社 2年目 3年目 4年目 ◯◯東北支社 5年目 6年目 ◯◯カンボジア支社 : : 転居歴 東京→東北→カンボジア というように今まで住んでいた場所の変遷をB列の最後に表示したいのですが、可能なのでしょうか? どうか教示よろしくお願いします。
>>98 B1=A1
B2=B1&"→"&A2
B2を下にオートフィル
本社支社消したければ
B2=B1&"→"&SUBSTITUTE(SUBSTITUTE(A2,"支社",""),"本社","")
をこんなこあn
100 :
名無しさん@そうだ選挙にいこう :2013/11/07(木) 16:04:20.70
>>82 めちゃくちゃ簡単に考えてみた。
Sheet1が処理に使うシートだとしたら
単純にB列に内容が入っているものだけを
Shee2に表示するようにしておいたらどうだろ
たとえば、Sheet2!A1: =IF(Sheet1!B1<>"",Sheet1!A1,"")
てな感じ。
印刷ボタン作るなら、自動的にSheet2が印刷
されるようにすればいいんじゃなかろか。
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 エクセルのファイル自体をQRコード(二次元バーコード)と して保存する方法はありますか? セルに入ってるデータをQRコード化する方法はあったのですが ファイルそのままという方法が見つけることが出来なかったので。
>>101 QRコードの最大容量が2kb
2010で作ったプレーンファイルが8kb
圧縮すれば入るかな?ってレベル
探しては無いけど、まずないだろう
バカってすげー事考えるんだな
101です。
>>102 ありがとうござます。
QRコードのMAXを失念してました。
skydriveあたりのwebでもいける共有ストレージに保存して、そのURLを全世界にQRコードで発信とかならいけるのかな
いけるっちゃいけるが、QRコードに拘る理由がよくわからん 短縮URLでも使ったほうがいいんでない
101です。ヘンな流れにしてごめんなさい。 アイデア色々とありがとうございます。 事前に登録されたノート携帯モバイル端末は持ち込め るのですが外部接続・USBがNGな場所での配布数150 前後のドキュメントを減らせないか?というのが元々です。
108 :
名無しさん@そうだ選挙にいこう :2013/11/07(木) 19:47:40.55
>>99 すみません返信遅れました(汗)レスありがとうございます。
やってみたところ、かなり自分の望んでいたものと近いものが出来ました。ずっとifを使って四苦八苦してたので、目から鱗でした。助かります。
ただ、年度数が増えるにしたがって矢印の数も増えてしまいます。
わがままですけども、できれば一つの移籍にひとつの矢印が表示されるようになるともっと嬉しいのですが、この矢印を圧縮したりとか出来たりするのでしょうか・・・・・?
A B
東京 東京
東京→
東京→→
広島 東京→→→広島
東京→→→広島→
東京→→→広島→→
東京→→→広島→→→
東京→→→広島→→→→
東京→→→広島→→→→→
東京→→→広島→→→→→→
>>108 ごめん、かなりテキトーにやってしまった
C1=SUBSTITUTE(SUBSTITUTE(B1,"支社",""),"本社","")
C2=IF(B2="",C1,C1&"→"&SUBSTITUTE(SUBSTITUTE(B2,"支社",""),"本社",""))
こんなとこかな
110 :
名無しさん@そうだ選挙にいこう :2013/11/07(木) 19:56:39.11
すみませんぐちゃぐちゃでした こんな感じです A B 東京 東京 東京→ 東京→→ 広島 東京→→→広島 東京→→→広島→ 東京→→→広島→→ 東京→→→広島→→→ 東京→→→広島→→→→ 東京→→→広島→→→→→ 東京→→→広島→→→→→→
111 :
名無しさん@そうだ選挙にいこう :2013/11/07(木) 20:03:45.05
>>109 あ、出来ました!矢印一つです!
すみません、支社本社を省略まで出来る関数作って貰ってしまって(汗)なるほど、こうすれば出来るんですね。
推移とか変遷でぐぐっても全然情報が出てこなくてほとほと途方に暮れていたところだったので本当に助かりました。ありがとうございます!
Excel2010なんですけど、以前のバージョンでブックにプロパティってのがあってそこに書き込むと エクスプローラーの上からマウスを当てるとポップアップでそれが表示されてたじゃないですか。 Excel2010で同様のことをしたいんですけど、どこを見れば良いんでしょうか?
>>113 わざわざキャプチャしていただき感謝です。
ありがとう
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A B C あ 1 5 10・・・ い 3 8 14・・・ う 5 11 18・・・ こういう表があったとき 例えば「あ」の2を指定したら5 「う」の13を指定したら18を返す関数を書きたいのですが教えてください
>>115 indirectっぽいけど
>「う」の13を指定したら18を返す関数を
これが分からん
117 :
名無しさん@そうだ選挙にいこう :2013/11/08(金) 20:05:07.14
なるほど「う」の13・・・・
>>115 >例えば「あ」の2を指定したら
どこで、どんな感じに指定したいんだ?
たぶん「2以上で2に一番近い数字」「13以上で13に一番近い数字」では?
名称の範囲それぞれに範囲名を付けて
INDEX(MATCH、MATCH(INDIRECT)-1)でできました
>>116 .117
指定行内の指定した数字に一番近い大きな数字を返すという意味でした
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 基本的な質問でごめんなさい func(a,b) という形で a が 真なら a を返し、偽なら b を返すような関数ってありますか? また if(a,a,b) という関数は真の場合、内部的に a は二回評価されるのでしょうか?
>>121 iferror。ちなみにifserrorというのもある。
後者は知らん。重い式でも作って試してみては
>>121 >また if(a,a,b) という関数は真の場合、内部的に a は二回評価されるのでしょうか?
内部的と外部的の意味が俺にはわからんが
真なら2回評価されるに決まってる
どちらも回答ありがとうございます
>>121 iferror は当然でありますが 0 や false が真扱いなのがネックですね
ifserror というのはどんなものか分かりませんでした、ごめんなさい
>>123 表面上の結果からは見えないので内部的と表現しました
125 :
124 :2013/11/08(金) 23:37:58.99
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 B列 ファイル名 D列 ファイルサイズをMB(メガバイト)単位 E列 D列を元に10MB単位で★を記載 つまり10MB以下なら無し、 20MB以下なら★1つ、30MB以下なら★2つ という風にしています(rept関数で) 用はサイズが10MB以上のファイルが何件記載されているのか知りたいってことなんですが、 この★を記した行が何行あるのかって知るにはどうしたら良いんでしょうか
>>128 D列参照で10MB以上あるセルの個数(行数)をCOUNTIF式で求めればいい
>>129 ありがとうございます
=COUNTIF(D2:D500,">10.0")
で出せました。後、自分で
=500-COUNTBLANK(E2:E500)-1
とも(最後の1引いているのは見出し分)
↑補足(E列は値を同じ列にコピー貼り付けして文字列に変更済み)
132 :
名無しさん@そうだ選挙にいこう :2013/11/09(土) 19:55:13.53
行を「しましま」にするにはどうしたらいいですか?
133 :
名無しさん@そうだ選挙にいこう :2013/11/09(土) 20:05:58.38
1つのセルに 'Test1 ","test,test2","test-test3","test;test4"・・・・・ みたいなデータが入ってるんですが、""の外の , で分けてそれぞれを各セルに入れるにはどうすればいいですか? その際、 " "は消したいです。 注意点は " "の中に , が入っるとこがあり、ここの , では分割してはいけません。
>>132 「テーブルに変換」では駄目なのか?
>>133 データをそのままメモ帳に貼り付ける
→ファイル名末尾を〜.csvで保存
→エクセルで開く
>>133 2アクションで可能
1、(区切り位置)で区切ってセル分けす
2、「”」は(検索と置換)を使って消す
2010では「test,test2」などの途中のカンマは無問題。消えずに残りますよ
137 :
名無しさん@そうだ選挙にいこう :2013/11/09(土) 20:48:32.70
A列にいろんなファイルのフルパスが入ってて、B列にそこからファイル名だけを取り出す方法はどうしますか? もし C:\Users\USER\Desktop\Youtube\Movie.avi なら Movie.avi だけ取り出したいんです。 Find関数で"\"の位置を特定しようにも"\"がいくつ含まれるかわからないので大変です
140 :
名無しさん@そうだ選挙にいこう :2013/11/09(土) 23:16:26.20
Excel2010ですが 読み取り専用で開いてた時に そのExcelファイルを誰かが更新した時にいちいち閉じて開きなおすのですが これを閉じるに更新すれば読み取りのまま最新にすることは可能でしょうか? もちろん読み取り専用の状態で編集した内容はセーブされずに更新されます
A 1 A 2 B 1 B 2 B 3 C 1 上の様なデータを アルファベット別に集計してしたのように 変換したいんですがどうしたらいいですか? A 3 B 6 C 1
上の件ですが 因みに抽出ではなく新たに表を作る形でお願いします
ピボットテーブルで
144 :
127 :2013/11/10(日) 01:21:14.56
>>139 ありがとうございます
下記の様なデータから表を作りました
任意値は3桁〜2桁の適当な数値です
宜しくお願いします
--------------------
[A列] [B列] [C列]
10/01 午前 任意値
午後 任意値
10/26 任意値
任意値
10/27 任意値
任意値
10/30 任意値
任意値
>>144 レイアウトが崩れてますね…
済みません
[A列]は日付
[B列]は午前/午後
[C列]は任意値
です
>
>>140 無理っす
どうしても問題が多発するならファイルを分ける、accessを使うなどを検討しましょう
>>127 ,144-145
30日の下側のセルに空白文字か何かが入っている?
>>148 ありがとうございます
最後の10/30は、セル毎に[]で表記しますと、
[10/30][無入力][任意値]
[無入力][無入力][任意値]
の2行です
>>150 ありがとうございます
値とは、(3桁〜2桁の)任意値のことでしょうか?
Excel初心者ですが 20シートあるうちの1シートだけを抽出して別名保存したり 特定の1シートを他のブックへ差し込んだりすることはできないのでしょうか?
>>152 抽出なら、ブックごとコピい〜して
ctrl+shift+pageup
またpagedownでスク数シート選択後、消すことが可能
差し込みは
エクセルを開いて、同じウインドウで開いた後、シート見出しを右クリックでコピーとかなんかで行ける
154 :
152 :2013/11/11(月) 03:56:07.42
>>153 こんな時間にありがとうございます。
>またpagedownでスク数シート選択後、消すことが可能
なるほどやはりこれで地道にやるしか無さそうですね。。
>エクセルを開いて、同じウインドウで開いた後、シート見出しを右クリックでコピーとかなんかで行ける
これは知りませんでした助かりました!
>>154 がんばれ
おれははきそうでのみすぎてもうだめd
156 :
名無しさん@そうだ選挙にいこう :2013/11/11(月) 12:39:24.06
VLOOKUP関数で日付をひっぱってきたつもりが 「33118」みたいな変な数字になりやがるんだ。 どうやったらちゃんと正式な日付が表示される?
ひでえなこりゃ
158 :
156 :2013/11/11(月) 13:34:32.89
うおおネタと本音が混ざっておかしな事になった
>>156 書式設定で日付を選択
原因は「シリアル値」でぐぐってね
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 以前WindowsXP、Excel2003の環境でマクロを含むブックを作り、 ネットワークドライブ上に保存して、複数の人が(同時ではなく)使える状態でした 上記環境に変わってからは、マクロを有効にするためにはセキュリティを最低にするしかなく、 事実上使えない状態です セキュリティを最低にせず、ネットワークドライブ上のマクロを有効にする方法があればご教示ください
>>161 セキュリティセンターから信頼できる場所にネットワークドライブを登録、かな?
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 A1からE1まで0、1、2、3、4の数値が入力してあり、A2からE2まで0、0、1、2、3が入力してあるとして、 0を除いて尚且つ0以外の最小値最大値を一個ずつ除いた数値の平均値を出すにはどんな式を使えば良いでしょうか? A1〜E1の場合は0と最大最小の1、4以外の平均値の2.5を、A2〜E2の場合は2を出せる式です よろしくお願いします
>>163 0の時は文字列にする
C3=IF(A1=0,"no",A1)
右にオートフィル
C4=MIN(A3:E3)
C5=MAX(A3:E3)
C6=AVERAGE(A3:E3)
>>164 ややこしくてすいません
A1〜E1だけの0と最大値、最小値を除いた平均値
A2〜E2も同じように行ごとに平均値をだしたいんです
A2〜E2は0が2つ入った場合の対応策を知りたかったので一緒に質問しました
>>163 配列数式(Ctrl+Shift+Enter)で
=TRIMMEAN(IF(A1:E1=0,"",A1:E1), 2/COUNT(IF(A1:E1=0,"",A1:E1)))
167 :
161 :2013/11/11(月) 23:44:25.83
>>162 ありがとうございます
明日試してみます
168 :
名無しさん@そうだ選挙にいこう :2013/11/12(火) 01:33:36.88
すいません。 質問です。これからVBAを学ぼうと思ってるんですが 近々VBAのサポートが終了すると聞きました。 本当ですか?せっかく覚えてもすぐに使えなくなるならと躊躇しております。
>>168 VB6と間違えてるかも?
聞いたことない。多分サポート終了しないと思うから存分に勉強してくれたまえ
170 :
168 :2013/11/12(火) 02:09:26.95
本当ですか。 その言葉を信じて勉強してみます。
>>170 VBAなんてそもそも、目的もなく勉強してまで覚えるようなシロモノではないです
173 :
名無しさん@そうだ選挙にいこう :2013/11/12(火) 17:17:31.23
>>172 >目的もなく
確かに実際の業務対象なしに覚えることはやめた方がいい。
覚えが10倍違う。
すいません excel と wordでおすすめの問題の本ありますか?
>>174 無い
とりあえず勉強したい、っていうなら「MOS」でぐぐって中古の本を買うとよろし
一番安いやつでいい
ちなみにMOSってのはエクセル等の試験のことな マイクロソフトオフィススペシャリストかなんか
MOS受けるんでなければビジネス向けの実用書一冊仕上げる方がいいと思うけどなあ
178 :
名無しさん@そうだ選挙にいこう :2013/11/13(水) 10:12:49.55
サポート終了ってのはどういう意味か知らんけど、もし今後のバージョンで使えなくなるってのならバージョンアップで買い替えってのは絶対しないw
>>178 マイクロソフトのサポート終了ってのは、セキュリティホールが見つかっても修正しないって意味だと思えばいい
WindowsもOfficeもね
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 シートの保護・解除を自動で行うマクロについてです。 手動の場合、オブジェクトの編集にチェックを入れる事で 保護状態のままオートシェイプの入力が可能になりますが マクロの場合にこれを可能にする引数はどれでしょうか。 関係がありそうなDrawingObjectsをTrue/Falseにしても変化がなかったのです よろしくお願いします。
184 :
名無しさん@そうだ選挙にいこう :2013/11/13(水) 20:58:27.94
【1 OSの種類 .】 Windows 7, 8.1 【2 Excelのバージョン 】 Excel 2007, 2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 クイックアクセスツールバーに追加できる「ドキュメントの場所」の枠を Excelのウィンドウ幅いっぱいに広げたい。 開いてるファイルがどこのファイルか一瞥して確認したいです。
>>185 無理じゃないかな
ステータスバーに表示するとかどうだろう
Private Sub Workbook_Open()
Application.StatusBar = ActiveWorkbook.Path
End Sub
>>180 これでいけないの?
Sub t()
ActiveSheet.Protect DrawingObjects:=True
End Sub
Sub f()
ActiveSheet.Protect DrawingObjects:=False
End Sub
188 :
名無しさん@そうだ選挙にいこう :2013/11/14(木) 17:02:07.45
A1セルにタイトルA.データAと入れた場合に タイトルA データA 1 データB 2 データC 3 タイトルB データA 4 データB 5 データC 6 こういったシートがある場合に タイトルAからその下の空白行までの中にあるデータAのデータつまり1を取得したい場合 どうすればいいのでしょうか?
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A1セルに「XXXX-YYY」が入っているとして、A1から「-」以降をB1に抽出するなら B1=LEFT(A1,(FIND("-",A1,1)-1))ですが、 B列でA列を数百セルほど抽出したら、動作が重くなりました そこでFINDより軽い、LEFT(A1,(SEARCH("-",A1,1)-1))を使ったのですが、 まだかなり重いです VBAだとSPLITを使えば簡単に抽出が出来るのは分かってはいるのですが 同じファイルをOOやLOで開く人もいるので、VBAを使うと不具合です VBAを使わずに、同じ動作を軽くする関数はありませんか?
191 :
名無しさん@そうだ選挙にいこう :2013/11/15(金) 17:11:03.50
>>189 手操作はいっちゃだめなの?
A列を一度ワーク列に入れて、
区切り位置つかって取り出してB列に貼り付け
数万行でも軽いけど。
だめ?
192 :
152 :2013/11/15(金) 21:07:30.23
VBAにより自動書きだししたブックのファイル名がすべて同じで数百あるのですが ブック同士を比較する時に同名のため開けませんと出てきますが同名でも開ける要にする方法は無いのでしょうか? 管理上ファイル名変更は厳しい状況です。
>>192 何を、どうやって比較するの?
今まではどうしてたの?今まで誰もやってなかった新しい仕事?
194 :
152 :2013/11/15(金) 21:36:43.60
>>193 Excel自体を複数立ち上げて目で見て比較したりしてました。
>>194 新規ブックを作って、そこに2つブックの内容を順番にコピーしてから比較
>>190-191 >結果を値貼り付けしてから配布
シート使用者が入力したAに合わせてBを作成するシートです
さらにそのBを使って…と複合したシートでかなり複雑なので重いので
虱潰しに軽量化を計っている所でLEFT(A1,(FIND("-",A1,1)-1))を
軽量化できないかと思いました
結果は、その時その時のシート使用者が使うまで分かりません
>手操作はいっちゃだめなの?
入力されたAに合わせてBを自動的に表示するのが目的(の一つ)なので
手操作するならそもそもExcelが必要なくなります
あと、AのXXXX-YYのXXXXは、4文字固定ではなく2〜6文字、
-がないものもあるし、YYも文字数がまちまちです
vbaで連番を付加するまででもなく、根気でファイル名を変えるのがこれからのために良いかも
198 :
152 :2013/11/16(土) 00:31:13.56
ファイル名の変更 - 同じファイル名でこそコードの使い回しが実現できているVBAの仕様を大幅に作り替える必要が ちょっとした手作業でやればできるよ - 数が手に負えないぐらい多いとじわじわと疲労が蓄積され地獄を見る
199 :
名無しさん@そうだ選挙にいこう :2013/11/16(土) 01:29:13.24
>>196 自動化が目的なのね。
>AのXXXX-YYのXXXXは、4文字固定ではなく2〜6文字、
区切り位置を使うと、それは何文字でもセルによって違っても
問題ないですよ。
区切り位置というのは、データリボンにある機能ね。
>-がないものもあるし、YYも文字数がまちまちです
-が無いというのは、くっついてるんじゃなくて、スペースだったり
するということかな。ならYYの文字数が違っても、区切り位置を
使用で可能(くどいねよね〜〜)
>>189 試してないけどfindにiferror等を使った作業列等も検討してみては
重いシートがうまく作れないわ。
>>198 なんでもいいけど名前がずっと152でっせ
201 :
199 :2013/11/16(土) 01:37:24.65
>>196 一連の人手の作業時間は10〜20秒程度と思います。
ブックにブックを入れ子にして大量のブックを束ねたスーパーブックみたいなのは作れないのでしょうか?
203 :
189 :2013/11/16(土) 05:20:15.51
>>199 区切り位置を試してみましたが、思っていた挙動とは違いました
・A列はXXXX-YYのままでB列をYYにしたいが、勝手にA列がXXXXにされてしまう
・シート製作者ではなく、シート使用者が手動で「区切り位置」入力しないといけない
・使用者に「区切り位置」という専門知識が必要になってしまい、教える必要がある
・A列が全部Nullだと使用不能なので、計算式だけ入ったブランクシートに対してシート製作側で仕込めない
>-が無いというのは、くっついてるんじゃなくて、スペースだったり
>するということかな。
必要な挙動イメージはこんなかんじです
A B
1 あいう-45 45
2 えお (B2はNull)
3 C-DEFG DEFG
4 1234-567 567
5 あ67 (B5はNull)
6 (A6がNullならB6もNullのまま)
7 いC12-3 3
8 (A6,B6と同様)
以下9,10,・・・と続く
シート製作者の作成時のA列は全部ブランクで、
それを複数の人間に配布、使用時のみA列が使用者の手によって埋まり、
A列入力時にB列が自動で表示される
>>202 applicationレベルで見ればまさにエクセルがそれなんだけどね・・・
多分、君が思っているものは作れないです
>>203 googleスプレッドシートとかも検討してみては
205 :
名無しさん@そうだ選挙にいこう :2013/11/16(土) 07:54:19.45
>>203 >A列はXXXX-YYのままでB列をYYにしたいが、勝手にA列がXXXXにされてしまう
これは最初に書いたように、A列のワーク列を使って、それを処理し
貼り付けるという意味です。
でも完全に自動化じゃないといけないとなると、別な方法ですね。
ちなみに、上記データでやってみましたら、
区切り位置フィールドに「−」と「スペース」をチェックしただけで
望まれた通りの結果になりました。
なにか使い方勘違いされてるのかな?
206 :
名無しさん@そうだ選挙にいこう :2013/11/16(土) 08:17:14.07
>>203 完全自動化望まれるなら、やはりVBAで正規表現になるでしょうね。
207 :
205 :2013/11/16(土) 08:31:04.81
>>203 ためしに、205の方法をマクロ記録でやってみた。
最初にSheet1のA列をSheet2に値貼り付けして
Sheet2のB列に結果(分離した右側)を作って
Sheet1のB列に値貼り付け
最後にSheet2のワーク列消去
再現実行してみたら、
とくに問題なく処理されました。
どこが違うんだろ?
208 :
205 :2013/11/16(土) 08:32:33.91
ボタン一発ですから、使用者が区切り位置の使用方法を覚える 必要ないです。
>>206-208 oooやLO(linux向けのオフィススイートだっけ?)の環境もあるらしいからvbaは使えないよ
B1=LEFT(A1,(SEARCH("-",A1,1)-1))以外には軽量化無理じゃね? FINDをSEARCHにするだけで倍は軽量化できるがそれ以上は無理
「XXXX-YYY」から「YYY」を抽出したいって言ってるのに、 どうして=LEFT(A1,(SEARCH("-",A1,1)-1))になるんだよ これじゃ「XXXX」になるだろ
SEARCHもFINDも"-"が含まれないとエラーになるから、結果を空白にしたいならIFを噛ませる必要がある
>>189 VBA不可、OoてもLOでも使えて全自動という条件だとSEARCH関数しかない
重いのはあきらめろ
=IF(ISERROR(SEARCH("-",A1)),"",RIGHT(A1,LEN(A1)-SEARCH("-",A1)))
エラー値は表示しないオプションがあったな あれとifどっちが軽いだろう
関数で遅いっていってんだから無理だろ無理。 一番は「そんなの無理。区切り位置操作位勉強しろアホ」って言って操作教えてやること。 使えない人とか言って操作する人舐めすぎ。ジジババでも覚えるわそんなもん。
216 :
名無しさん@そうだ選挙にいこう :2013/11/16(土) 10:17:00.16
Windows7にしてからというものの Excelファイルをデスクトップに保存しようと思っても 保存先にデスクトップが現れやがらない。 どうやればいいの?
218 :
216 :2013/11/16(土) 12:12:49.81
>>217 どうも。
設定をいじってカレントフォルダをデスクトップがあるフォルダにして解決しました。
しかしMicrosoftはユーザのこと全く考えてないよな。
そんなマイフォルダとかわけのわからん場所には保存しないっつの。
無理やりユーザにマイフォルダがあるんだからそれつかえって強要するなっつの。
いちばんデスクトップがわかりやすいのに。
いつも見えてる安心感だし。
219 :
189 :2013/11/16(土) 12:43:23.69
みなさんありがとう 今までどおりSEARCHで行きます まあ、OOやLOだと動作がやたらと軽いんで (その替わりレンダリングがやたらと雑ですが) 使用者には可能な限りOOでやるように頼むとします Excelの人には重さを我慢してもらおう
>>189 最初から2セルに入力させろよ;
キーストローク数も変わらん
デスクトップがアイコンでいっぱいの人っているよね 全部埋まったらどうするんだろ?
アイコンを小さくすればいいよw
モニター増やして解決
225 :
名無しさん@そうだ選挙にいこう :2013/11/16(土) 20:43:57.99
>>222 1個フォルダ作って全部そこに入れたらいいだろ
227 :
名無しさん@そうだ選挙にいこう :2013/11/16(土) 23:35:08.01
デスクトップにアイコンがあふれている人は 実生活でも机の上があふれかえってるんだろうな 自分の話だけど。。。。
228 :
名無しさん@そうだ選挙にいこう :2013/11/17(日) 00:23:16.25
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 はい Sub Sample() Range("A1").Value = "1900/1/1" Debug.Print Range("A1").Value End Sub を実行すると 1899/12/31 になるのは仕様ですか?
仕様です ワークシートには1900/2/29があるがVBAには無いのでずれる
230 :
名無しさん@そうだ選挙にいこう :2013/11/17(日) 02:56:05.49
231 :
名無しさん@そうだ選挙にいこう :2013/11/17(日) 07:53:24.48
>>229 そーなんだー。知らんかった。
ワークシート関数は1900年のうるう年がおかしいんだ。
1900年は平年(100で割り切れるが400で割り切れない)なのに
ワークシート関数は2月29日があるんだね。
ふつうは使うことなさそうだけど。
と思ったら4つ目にもあったか、まぁいいか
235 :
名無しさん@そうだ選挙にいこう :2013/11/17(日) 11:05:03.84
Excelのオブションで ・1900年日付システム ・1904年日付システム というのがあったんだ。しらんかった。
>>233 おお、サンクス
C++ から Excel 使うクラスライブラリーを作ってて、ここら辺の動作が意味不明で気持ち悪かったから、スッキリしたわ。
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 1.セル内の文字ですが、途中まで文字を打ち込んでから 上のメニューを使って変更すると 入力途中からサイズやフォント名を変更でき、 2種類以上のフォントやサイズを1セル内で使うことが出来ますが、 これを手動ではなく、「特定の文字列を見つけたら」とか、 「特定の数値になったら」で行える関数はないでしょうか? ちなみに「条件付き書式」機能は試してみましたが、 セル全文字のフォントが変わってしまい、 文字列の途中から違う書式というのはできませんでした VBAなしでお願いします
238 :
名無しさん@そうだ選挙にいこう :2013/11/17(日) 15:44:49.35
はっきり言おう 「無理」
そこまで表示形式にこだわるようなことを何故エクセルでやろうとするのか。
俺にはこれしか無いんだ!だからこれが世界でいちばんいいソフトなんだ!
他のセルではバリバリ計算していて、そのセルだけ何かの都合で一部の色を変えたいんだよ そう思っておけば世界は一歩平和になるよ
Excel初心者でピボットテーブルを練習中の者ですが 日 時 反応1 反応2 反応3 1月1日 0:00 白 黒 白 1月1日 0:10 黒 黒 白 ・・・ 12月31 24:50 白 白 白 このような年間データが数年分ありまして日ごとや月ごとやクオータごとや年ごとで集計分析を行いたいのですがどうすれば良いでしょうか? ピボットで指定しますと超長い表ができたり白黒を数値に置き換えると合算されてしまったりでうまくいかないのですが。 オートフィルタをまだ使ったことがないですがオートフィルタの方が良いのでしょうか?ピポットの方が適しているでしょうか?
243 :
242 :2013/11/17(日) 16:46:38.23
>>242 補足します
たとえば月の項目をセットすれば1月の情報だけが抽出表示されそれに対する集計結果が得られ、
同様に2月の場合・1クオーターの場合・1年の場合・・と別表を作らなくても結果が確認できるようにしたい感じであります。。
>>243 >月の項目をセット
これってExcelで具体的にどんな操作を想定してるの?わからん
245 :
242 :2013/11/17(日) 17:23:22.33
>>244 プルダウンで1月・2月とか 1Q 2Q ○○年と選べるようにして 選んだ場合その時期のデータのみ表示されるようにしたいのですが。
集計計算式を別所に設置し使い回す計画です
たとえば1月は反応1の白の回数は81%黒の回数は19%であったとか わかりやすく白黒にしましたが他の実際のデータは色もあります。
246 :
242 :2013/11/17(日) 17:27:55.64
>>245 実際のデータは色もあります。→実際のデータは他の色もあります。 失礼・・
なんでオートフィルタを覚えないの
>>245 >プルダウンで1月・2月とか 1Q 2Q ○○年と選べるようにして
WorksheetのChangeイベント
>選んだ場合その時期のデータのみ表示されるようにしたいのですが。
AutoFilter
249 :
242 :2013/11/17(日) 23:58:51.77
>>248 >>247 オートフィルタが正解のようですねこれから勉強してみます、ありがとうございました。
Excelはまだ部分的にしか把握していない状況でして
ピボットは何でもできる物だと思い込んでいてかなり迷走していました。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 範囲の指定をしたいときに、特定のセルだけ対象外とすることはできますか? 例えば、COUNT(A1:A10,A1)のA1:A10のうち、 A3とA4のセルは除く、またはA1:A2+A5:A10といった書き方はありますでしょうか?
>>250 a100=COUNT(A1:A10,A1)-COUNT(A3:A4,A1)
最後はしらんけど多分無いだろう
そういえば半角スペースが演算子な事思いだしたけど これって使うことある? =SUM(A1:A5 A4:A7) でsum(a4:a5)と同じのはずだけど、実際に使いどころが思い浮かばない
253 :
名無しさん@そうだ選挙にいこう :2013/11/19(火) 20:18:07.03
A列に日付、B列に時刻、C列に最大マグニチュード、D列〜に各都道府県で確認された最大震度、 の表を作り、地震の傾向を分析しようと思うのですが その元データがありません。 どこで手に入りますか?
>>253 それもうエクセルの質問じゃないでしょ(笑)
>>252 変わった参照演算子はINDIRECTなどと共に使うとよいのかも
256 :
名無しさん@そうだ選挙にいこう :2013/11/19(火) 23:06:08.83
>>253 たしかそういうデータあると思う
気象庁のページから探した?
なければ、国交省から探してみて
関数とか書式設定で昭和とか平成とかって出せるのは知ってるけど、新しい元号が出来た時ってMSは無料で追加できるように してくれるんですかね?
サポート期間中はしてくれるだろう サポート期間が切れてたら多分ムリじゃないかな。知らんけどな。
>>258 ま、多分そうなんだろうなというかそうであって欲しいですがw
>>257 レジストリの HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras
を何とかすると良いらしいですよ
261 :
名無しさん@そうだ選挙にいこう :2013/11/20(水) 16:11:18.17
>>252 これ知らんかったなー
二つの集合の共通部分が求められるのね。
へ〜〜〜。
あんがと。
>>260 レジストリいじるのはMSにお任せします^^; w
すみませんが教えて下さい。 商品名毎に数量を集計して下さいって言われたんだけど、商品名の入力の仕方がバラバラなんだけど みなさんならどうやって集計しますか?他に集計キーはありません。
集計キーを追加するように仕様変更する
>>263 バラバラって具体的にどういうこと?
同じアイテムに複数の名前が付いてるとかそういうこと?
入力されてるセルの位置が統一されてないってこと?
もっと詳しく書いてもらわないとなんのアイディアも出せない
つーか、テンプレ使おうよ
>>263 いくらバラバラでも種類は限られてるはず
複数のパターンに対応できるようにプログラムを作って集計する
そういう出鱈目な状態を改善しない限り今後も泣き続けることになる 取り敢えず、名前で並べ替えしてやっていくしかなかろ
268 :
263 :2013/11/20(水) 23:41:20.44
>>265 さんの言う通り同じアイテムですが、アイテムの名前がABC、ABC(D)、ABC(E)は同じ扱い
EFG-HがEFG Hは同じ、EFG-CとEFG Cは同じと言った感じです。
>>266 さんの言う通り法則性があるかもしれませんので分析して見ます。
>>267 さんもありがとうございました。
>>268 なんでテンプレ使わないの?
馬鹿なの?
テンプレ使っても使わなくても結果は同じだったと思うが・・・
271 :
名無しさん@そうだ選挙にいこう :2013/11/21(木) 03:37:12.10
ピボットテーブルをマスターしたいんですが それだけに特化した本でおすすめはどれですか? Excelの他の機能は充分(*)に使いこなせています。 (*)会社で10人の部署ならば1番目か2番目くらいにExcelに詳しいレベル
>>271 できるExcel ピボットテーブル 2010/2007/2003/2002対応 データ集計・抽出マスターブック (できるシリーズ) [単行本(ソフトカバー)]
エクセルに限らず、迷ったら筆者でぐぐる+サイズがでかいもの+ページ数が多いもの
がいい
値段は気にするな
>(*)会社で10人の部署ならば1番目か2番目くらいにExcelに詳しいレベル そんなやつはピボットは普通に使えているはずだと思う・・・
274 :
名無しさん@そうだ選挙にいこう :2013/11/21(木) 07:45:54.05
275 :
名無しさん@そうだ選挙にいこう :2013/11/21(木) 07:51:32.50
>268 種類が異常に多い場合は、手作業をあきらめて 「正規表現」というのを覚えたほうがいい。 一度CSVに吐き出してから、プログラム的に処理したほうがいい。 WindowsならPowerShellというのが付いているから、それの中で 正規表現使う方法を覚えておくと便利。 なお、正規表現を覚える際には、最初に文法的な部分にこだわらず 使用例から入らないと時間がかかり非効率なんで、使用例が豊富に ある本などを参考にするといいと思います
正規表現、宇宙人が喋ってんのかと思ってるw
277 :
名無しさん@そうだ選挙にいこう :2013/11/21(木) 10:26:02.05
オレの「性器表現」の使用例は、どんどんセックスをすることだ。 どうすればナンパできるか、みたいなHow To本読んでも意味がない。
>>276 なれるまではかなりキツイが、慣れるとどうでもいい
.*?だけでも知っているといい、多分一番使う
>>277 お、おう
279 :
271 :2013/11/21(木) 10:47:34.10
>>272 ありがとうございます。
でも高いので1個古い↓のバージョンを中古で買っても内容が古かったりバチが当たりませんか?
できるExcel ピボットテーブル 2007/2003/2002対応 大量データから瞬時に見たい結果を引き出せる本(できるシリーズ)
>>279 2010と2007かな。
当然内容は古い。当たり前だ。2007と2010の差分自体も大したことないと思う。
無いかも知らない。それは知らない。
ただ、たかだか数百円でその微妙な差分を捨ててしまってもいいのかとは思う
この数百円はプライドそのものと言っても差し支えない
「俺は確かに2010の勉強はした」
と言い切れる自信を数百円で買うかどうかだと思う。
2007-2010で起きた差分によるミスを後輩に突っ込まれて、
「いやー俺は2007までしか勉強してなかった〜」
といえるかどうかだと思う
俺はこないだまで2003止まりで、iferrorとか知らなくて先方のワークシートで色々ともめた経歴もあった
(今は2013使ってます)
この意味が分からん&恥をかきたくないなら最新の使っとけ。とりあえず言い訳は立つ
ピボットは2010で結構変わったよ
お世話になります。 Excel2010でB2ポスターの作成をしております。 全体の背景をグレーにしてワードアートを挿入したところ、 ワードアートの枠や背景が、透明に設定しているのに印刷時や pdfに保存後にうっすらと映り、他の文字や画像に掛かってしまいます。 Excelを使う以上避けられないのでしょうか。 解決方法があればご教示お願いします。
283 :
名無しさん@そうだ選挙にいこう :2013/11/21(木) 11:56:03.84
無理
【1 OSの種類 .】 Windows7か8 【2 Excelのバージョン 】 Excel2010か2013 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 エクセルでカレンダー作る人は多いように感じるけど、 エクセルを使ってカレンダーってどうやって作ればいいんだろう
285 :
名無しさん@そうだ選挙にいこう :2013/11/21(木) 14:10:32.92
>>282 Office入ってるならPublisherつかえば?
286 :
名無しさん@そうだ選挙にいこう :2013/11/21(木) 14:55:28.14
>>284 テンプレートがたくさんある
ヘルプ=>テンプレート
>>285 文字に輪郭があると良かったんですが諦めます。
Home and businessなのでPublisherはありません。
ありがとうございます。
288 :
名無しさん@そうだ選挙にいこう :2013/11/23(土) 13:03:24.69
Excelでは「フィルタオプションの設定(Advanced Filter)」の機能を頻繁に使っています。 ごぞんじのとおりExcelの「フィルタオプションの設定」とは フィルタ条件を別のテーブルで作ってやって、横並びはAND、縦並びはOR、としてフィルターされる超便利機能です。 ところが会社でAccessを使わされはじめました。 この機能はAccessではどのように実現しますか? DBの専用ソフトAccessのことだから、できるはずだと思うのですがどうやるかさっぱりわからず困っております。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 条件付き書式になるのか?なんですが一つ教えてください。 E列に処理対象である印を"★"(1個から数個)、処理済みのチェックをF列に"x"で 付けています。 ※E列は処理対象外なら空白 で、E列が処理対象でF列が空白(つまりまだ処理していない)時、F列の対象セルを 青く(別に色は他のものでも構わないのですが)して、F列に"x"を入れたら元の白 にするようにってしたいんですが、どうすればいいのでしょ
>>290 =(IFERROR(FIND("★",E1),0)*(F1=""))
1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ(どうしても必要ならこれから勉強します) 【4 VBAでの回答の可否】 一応可 Excelではセルを縦や横に結合して大きなセルに出来るのですが 縦に結合したセルに入力規則を設定するとドロップダウンリストの ボタンが結合後のセルの高さではなく、一番上だった行の高さで ボタンが出てしまいます 「それが見苦しくて嫌だ、なんとかならないか?」と言われました そこで、結合したセルの高さに見合った大きなドロップダウンボタンを 表示する方法はないでしょうか? シート設定などで変更可能ならVBAなしで、 不可能ならVBAでお願いします
>>291 ありがとうございます。これですげー判りやすいなりました。
式の意味はググりながら勉強してみます
>>292 仕様です、諦めて下さい
と言っていいと思う
俺なら言う
画像をリンクさせたり、セルを選択した時のイベントとして何とかする方法もなくはないけど、
途方も無い作業になる
それに変更があるとまたまたとんでもない作業になる
そのリンクのためだけに雇われてるなら教えるけど、そうではないでしょう
基本的には無理、頑張ってできるけどすごく時間がかかる作業。
一言で言うと「アホらしい」です
諦めてもらうように行って下さい。
どうしてもそれでなければいけないのなら教えます。
>>293 論理値
でぐぐるといいよ
1=TRUE
0=FALSE
今回は「論理積」を使ってる
論理演算は面白いので極めてね
そして教えてね
>>295 教えられるレベルまで行けるかどうかは別にしてありがとw
勉強してみます
>>294 ありがとうございました
「仕様です」で説得してみます
エクセル2010で、タブ区切りのCSV(市販の会計ソフトで出力したやつ)を開いても、 A列にだけデータが入ってしまいセルごとに別れてくれません。 どうすればいいの?
>>298 メモ帳で開いてコピー、貼り付け。区切りデータ
OOoを使う。OOoはぐぐれ
エクセルウィンドウにドラッグアンドドロップ
んなメンドーなことしなくても、区切りデータで済むぞw
用語は正確に書いてやれよ 「区切り位置」
302 :
298 :2013/11/23(土) 22:18:52.59
区切り位置でできました! ありがちうございます。
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 はい の技術計算マクロを次のマシンで実行するとフリーズする。 【1 OSの種類 .】 Windows 7(64) 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 はい 自動計算はOFFにしており、マクロ実行中にCALCULATEで実行する。 2枚のシートのセルに数十個の変数があり、それらを種々のFUNCTION で演算処理する。 Excel 2010で発生する問題は、FUNC(A,B,C,D)というように定義した関数が CALCULATEで実行される時、シートのセルではA,B,C,Dは定義されている 数字であるにもかかわらず、関数が呼ばれた時に引数がNULL?となって、 内部処理でエラーが発生することに原因がある。 セルの循環定義はないが、なぜ、NULLデータが関数に引き渡されるのか よくわからない。上記A,B,C,Dのセルが別シートのセルを参照した式で 定義されているときに発生すると思われる。 対処方法があれば教えて欲しい。
>>303 まずは直接関係ない部分をどんどん削って、エラーが再現する最小限の条件を絞り込むだな
>>303 作るのめんどくさいからファイルをアップして欲しい・・・
ユーザー定義関数って作る? 覚えたての頃ははしゃいでよく作ってたけど、気づいたら数年つくkってなかった
再計算の挙動がよくわからないところがあるのでつかってない
>>303 状況再現できず
ステップインとか使ってみては
>>307 再計算の挙動に影響されるようなもんはそもそも向いてないだろ
310 :
名無しさん@そうだ選挙にいこう :2013/11/24(日) 14:29:02.98
>>303 Nullになる変数が分かってるんだから
ウォッチ式でその変数の変化を追っていけば
どこに問題があるかわかるんじゃないの?
311 :
303 :2013/11/24(日) 16:32:33.77
>>304 すでにやった。
次のようなマクロで、Sheet1とSheet2のC1セルに=warizan("A1","B1")のように設定する。
でもって、Sheet2のA1とB1にSheet1のセルから適当に演算式をつくって代入する。
例えば、Sheet2のA1とB1に=Sheet1!C1*Sheet1!C1とかでもよい。
Function warizan(a, b)
MsgBox ("a=" & a & " b=" & b)
warizan = a / b
End Function
Sub keisan()
Calculate
End Sub
手動計算に設定しておいて、Sheet1のA1とB1になにか数字を入力して、
keisan()をマクロ登録したSheet1のテキストボックスのクリックで実行すると、
a= と b= がNullで表示される場合がある。
すでにSheet2のA1とB1にも数字(以前の演算結果)が表示されている
にもかかわらずにそうなる。
Nullで表示される場合はファイルをオープンした直後にSheet1のA1,B1セル
の数字を修正してマクロを実行した場合のみに限定される模様。
Null表示になる場合、warizanのMsgBox表示が3回出力される。
1回目はSheet1の演算結果、2回目がNull表示、3回目がSheet2の演算結果
となる。ゼロ除算エラーは出ない。
一度、マクロ実行するとこのサンプルでは正常に2回ずつ表示されるようになる。
>>311 全然ならん
実際になったファイルをアップロードして
=warizan("A1","B1") じゃなくて =warizan(A1,B1) じゃないの
315 :
303 :2013/11/24(日) 18:26:23.60
316 :
303 :2013/11/24(日) 18:29:45.33
自宅のEXCEL 2010の環境がおかしいかもしれないので、 別の人のEXCEL 2010で試してみるよ。
317 :
名無しさん@そうだ選挙にいこう :2013/11/24(日) 18:36:13.01
ところで、Excelは64bitと32bitのどちらつかってるの? 関係はないだろうけど、ちょっと聞いてる。
318 :
303 :2013/11/24(日) 19:03:55.10
>>317 32ビット
追加テストしてみた。
こうすると正常動作した。
Sub keisan()
Worksheets("Sheet1").Calculate
Worksheets("Sheet2").Calculate
End Sub
こちらも正常動作した。
Sub keisan()
Worksheets("Sheet2").Calculate
Worksheets("Sheet1").Calculate
End Sub
これだけ動作がおかしい。
Sub keisan()
Calculate
End Sub
319 :
303 :2013/11/24(日) 19:15:18.45
失礼。 これはNullはでないが、演算は完了していない。動作は正常。 Sub keisan() Worksheets("Sheet2").Calculate Worksheets("Sheet1").Calculate End Sub そう思って最後にCalculate追加したらまた動作がおかしくなった。 Sub keisan() Worksheets("Sheet2").Calculate Worksheets("Sheet1").Calculate Calculate End Sub
320 :
303 :2013/11/24(日) 19:21:25.56
各セルの文字列の後ろに余分な半角スペースがあり、 それを取り除くマクロを作りました。 3万行だと10秒以上も掛かってしまいますが、 もっと効率よく処理する(時間を短縮する)方法があれば教えてください。 Sub 半角スペース削除() MaxRow = Range("A1").End(xlDown).Row MaxCol = Range("A1").End(xlToRight).Column For i = 1 To MaxRow For j = 1 To MaxCol Cells(i, j).Value = Trim(Cells(i, j).Value) Next j Next i End Sub
>>321 多分それ以上はないと思う
セルに入力する際に半角スペースを取り除いたほうが多少早くなるけど、
10秒なら多めに見れるレベル
読み込むたびに10秒かかってるなら設計を見直すべき
323 :
名無しさん@そうだ選挙にいこう :2013/11/24(日) 21:06:37.36
>>321 Sub Unko()
Dim Cell As Range
For Each Cell In ActiveSheet.UsedRange
If Cell <> "" Then
Cell = Trim(Cell)
End If
Next Cell
End Sub
324 :
名無しさん@そうだ選挙にいこう :2013/11/24(日) 21:07:16.51
Sub Unko() Dim Cell As Range For Each Cell In ActiveSheet.UsedRange If Cell <> "" Then Cell = Trim(Cell) End If Next Cell Set Cell = Nothing End Sub
関数名被った死にたい
326 :
名無しさん@そうだ選挙にいこう :2013/11/24(日) 21:16:00.18
>>325 あなたは
Sub Manko()
にしなさい
1234-5678 こういう場合に「-」を「0」に置き換えたいんだが やり方教えてください
>>328 すまん
もっと詳しく教えてくれ
ド素人なんだ…
>>329 シランガナ
ド素人なら
>>1-10 ぐらいのテンプレ使うと一生懸命具合が伝わって良いぞ
まぁ暇だから答えるが
A1=1234-5678
B1=SUBSTITUTE(A1,"-","o")
331 :
名無しさん@そうだ選挙にいこう :2013/11/24(日) 21:38:00.93
>>328 次は
Sub Chinko()
さらには
Sub Shikko()
>>331 unko,tinko,mankoは覚えやすく、打ち間違えもないので続けている
しっこはぶれるので却下
4つ目以降はa_xやxxx、lkj等
元気な手が勝手に命名するよ
lkjは割とお気に入り
334 :
321 :2013/11/24(日) 22:00:25.36
>>322 かなり前の過去ログで、一気に処理するのがありましたが
知ってる方がいればと思い質問しました。
とりあえず、これで処理します。
>>323-324 試してみましたが、PCの時計で計ったところ
速度は321と変わらないようです。
335 :
名無しさん@そうだ選挙にいこう :2013/11/24(日) 22:08:50.16
>>323-324 UsedRange より CurrentRegion のほうが元コードの動作に近くて良くない?
336 :
名無しさん@そうだ選挙にいこう :2013/11/24(日) 22:14:31.27
>>334 もしかして
一度Variant型変数に格納して処理する手法とかじゃない?
たしかOffice TANAKA 辺りで解説されてたと思うよ。
>>321 Sub 半角スペース削除()
MaxRow = Range("A1").End(xlDown).Row
MaxCol = Range("A1").End(xlToRight).Column
Range(Cells(1, 1), Cells(MaxRow, MaxCol)).Replace " ", ""
End Sub
CTRL+Hと同じ動作。これで遅いならPCスペックあげるしかない
ちなみに自PCで20万個の半角スペース消すのに12秒ほど
>>335 UsedRange も CurrentRegion もセルの使い方によっては余計なセルを巻き込むよ
置換対象のデータしかないならいいんだけど。
その場合なら
Range("A1").CurrentRegion.Replace " ", ""
の1行で済む。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 ファイル拡張子がodsのシートファイルを渡されたのですが開けません Excelでodsのファイルを開く方法を教えて下さい
>>339 多分ない
xlsに作り直してもらうか,ooo使って変換するか
341 :
名無しさん@そうだ選挙にいこう :2013/11/25(月) 10:40:23.68
セルを選択してF2ボタンを押すと、 一発でカーソルがセル内文字の一番最後に行きますが、 セル内文字の一番先頭に行かせる方法はありませんか?
>>342 しょうがないからそうやってます。
やはり一発は無いんですね
なんでまたF2を最後尾に設定したかなー
間違えなく先頭の方が求められている設定のはずなんだけどw
>>343 お前はどうやって全世界で統計をとったんだ
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 例えば 名前 : @ : A : B : C : A 1 2 3 4 B 0 3 2 5 C 5 1 4 3 D 0 5 1 1 上記のような表があり、 下記のように別欄(別シート)に名前を打ち込むことで対応した行全体のデータを表示する関数などはありますか? 抽出 : @ : A : B : C : B 0 3 2 5 D 0 5 1 1
めちゃずれた、すみません
348 :
303 :2013/11/25(月) 21:02:13.97
EXCEL2003のマクロがEXCEL2010で走らない原因がわかった。 ワークシートの自動計算またはF9またはCalculateのEXCEL内部処理の アルゴリズムを理解していないことに根本原因があった。 各セルの値を演算式で定義している場合において、手動計算設定していて、 再計算またはF9またはCalculateを実行すると、演算式のセルの値が、一端 初期化されて未定義状態(セルに#VALUEが表示されような状態)となるという 事実を知らずに、関数を定義したことに原因があった。 引数が未定義で関数内部でエラーが発生するだけなら、正しい引数が 設定された時点で正しい関数値となるが、Do Loop処理で収束演算判定を している場合に、引数が未定義の場合、最悪無限ループになって処理が終了 しない場合が発生する。今回はこれに遭遇した。 この問題はEXCEL2003でも2010でも同様に発生する可能性があるが、EXCEL2003で マクロを走らせた時は無限ループの原因となる引数がたまたま未定義とならずに、 関数がコールされただけだったと推定される。 対策は問題となる関数で引数の未定義判定処理(If 引数<>"" 等)を組み込み、 未定義の引数がある場合は関数値を返さない(放置する)でリターン処理する だけでよい。これで問題解決した。 エクセルの自動計算は各セルの演算式の結果がすべて確定するまで繰り返す アルゴリズムで動いていると推定される。最初は引数が未定義なので、関数値も 演算エラーで#VALUEとなる。Loop処理がない関数はそのままエラーとなるので 放置しておけばよい。何回か繰り返すと正しい引数となってブック全体の演算が 終了する。(再計算してもすべてのセルで変化がなければ演算停止する)
349 :
名無しさん@そうだ選挙にいこう :2013/11/25(月) 21:38:13.28
350 :
303 :2013/11/25(月) 21:52:56.90
>>349 各セルの値を演算式で定義している場合において、手動計算設定していて、
再計算またはF9またはCalculateを実行すると、演算式のセルの値が、一端
初期化されて未定義状態(セルに#VALUEが表示されような状態)となる
>>349 「動かないと思ったのは
不勉強による勘違いだっ
た」
【1 OSの種類 .】 Windows XP,7 【2 Excelのバージョン 】 Excel 2003 2007 2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 MySQLのgroup_concatと同じようなことをしたいのですが 何かよいアイデアはないでしょうか
>>351 39
>>352 A列に並んでいるとして
b1=a1
b2=a1&a2
下にオートフィル
355 :
1/2 :2013/11/26(火) 18:34:38.50
Excelそのものの質問ではないのですが どこに書いてあるか判らないエクセルファイルを検索するには どうしたらいいでしょうか? 例えば、エクセルのファイルが10あるとします 次に、その10ファイルそれぞれのファイルに12シートあるとします つまり1年12ヶ月分のファイルが10年分というわけです そして、ある年月日に大きな買い物をしてエクセルに記述し、しばらくした後 何時買ったか気になって、その買った日の年月日を調べようとしたとします。 買った記憶も記述した記憶もあるけど、何時買ったか記憶にないという状況です
356 :
2/2 :2013/11/26(火) 18:40:33.02
ここで問題ですが現状だと、検索するにしても その記述された特定のファイルの特定のシートまでいかないと 検索することが出来ず、検索結果にも表示されませんでした。 これを一発検索すると、特定のシートまではいかなくても 特定のファイルまでは1発で表示するようにしたいんです どうしたらいいですか?
>>355 http://q.hatena.ne.jp/1158037552 ウィンドウズ標準の検索ではいかがでしょうか?
[ファイル名のすべてまたは一部]で*.xlsを指定して
望む検索語を[ファイルに含まれる単語または句]に指定して検索すれば
特定フォルダ内のExcelファイルから指定した単語の検索が出来るかと思います。
やってないけど、これでうまくいけばうまくいくんじゃないかな
358 :
303 :2013/11/26(火) 19:59:06.93
>>356 ブック全体を検索するオプションを使えば良い。
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 丸付き数字に関する質問です。 A1セルにBが入ってたとき、変数aにA(Bより1小さい)、 変数bにC(Bより1大きい)を入れるにはどうすればいいでしょうか?
>>360 なんかこんな感じ
Sub z()
a = (Chr(Asc(Cells(1, 1)) + 1))
End Sub
362 :
名無しさん@そうだ選挙にいこう :2013/11/26(火) 21:53:20.42
>>360 こっちだ
Sub Ketsunoana()
a = (Chr(Asc(Cells(1, 1)) - 1))
b = (Chr(Asc(Cells(1, 1)) + 1))
End Sub
363 :
360 :2013/11/26(火) 22:13:16.47
364 :
352 :2013/11/26(火) 23:04:38.43
例えばこんな感じにしたい ピボットテーブルでやるべきもの? A列 B列 aaa 山田 bbb 佐藤 ccc 田中 aaa 鈴木 ccc 安田 aaa 勅使河原 ↓ aaa 山田,鈴木,,勅使河原 bbb 佐藤 ccc 田中,安田
365 :
名無しさん@そうだ選挙にいこう :2013/11/26(火) 23:08:47.72
勅使河原さんって統一教会の人?
コンボボックス(フォームコントロール)で1番目のデータを選択してブック保存し、 開き直すと選んだはずのデータが消えて未選択状態になってしまいます。 (2番目以降のデータの場合はきちんと保存される) コンボボックスの「コントロールの書式設定」にて、リンクするセルを未指定だと上記事象が発生します。 2003で発生せず2010で発生します。 Excel2010のバグでしょうか?
こんばんわ。 webクエリの更新間隔を10秒にしたいんですけど、方法を教えてください。
368 :
367 :2013/11/27(水) 02:07:04.34
テンプレ見落としてました 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可
未だに自宅ではOffice2002を使ってるんだが、WordとかExcelって最新版を使うメリットってなんかあるの?
>>372 使える書式の種類が増えてるとか、関数の種類が増えてるとか、行数列数が増えてるとか
セキュリティが強化されてるとか、64bit版は計算が速いとか違いはあるけど、
そういうのが必要なければ無理に乗り換える必要もない
ただしサポート期限が切れたやつは世界中に迷惑がかかるから使うな
どんな迷惑?
セキュリティ対策してないパソコンはウィルスの培養器になるって学校で習わなかった?
ウィルス対策ソフトでは、そのウィルスはスルーしてしまうのかな。
じゃあなんのためにWindowsやOfficeの脆弱性を修正するアップデートがあったり、 わざわざサポート終了時期をアナウンスしたり、それで世間が大騒ぎしたりするのかな
378 :
名無しさん@そうだ選挙にいこう :2013/11/27(水) 14:37:40.06
【1 OSの種類 .】 Windows7(8ダウングレード) (以前はwinXP) 【2 Excelのバージョン 】 Excel2010 (以前はexcel2000) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 行挿入や行削除を行うと毎回ではないが突然下のほうの行が 高さ409.5になってしまう。 例えば20行目を行削除したら45行目が409.5の高さになってしまいます。 1つのファイルだけではなく色々なファイルで症状がでますが 毎回出る訳ではなく法則性がつかめていません。 ググって見つけた↓ [Excelのオプション] → [詳細設定] → [挿入したオブジェクトをセルと共に切り取り、コピー、並べ替えを行う] チェック ボックスがオフになっている場合に起こるという事例もあるようです。 ↑これはチェックボックスがオンになっています。 関係あるかわかりませんが、この症状のでるPCは 官公庁HPでのやり取りがあるのでIE10 → IE9 に変更しています。 宜しくお願い致します。
380 :
378 :2013/11/27(水) 15:08:37.23
>>379 レジストリは自己責任で素人はいじるなって認識なので怖いです。
修復のほうを試してみます。
PCはhpで買ったもので購入時に 8→7 にダウングレードしたものです。(64ビット)
office2010はprofessionalのDVDメディアの正規版です。
32ビット 64ビット どちらも対応となっていました。
381 :
名無しさん@そうだ選挙にいこう :2013/11/28(木) 16:29:07.98
【1 OSの種類 .】 Windows8 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 タブレットパソコンでExcelのテキストボックスで入力プログラムを作りたいのですが、 当然、テキストボックスをクリックしても、キーボードが表示されません。 いろいろなサイトを回り、TabTip.exeを起動させればいいとわかったのですが、 shell関数を使っても、「プロシジャーの呼び出し、または引数が不正です」の エラーが出てきます。 notepad.exeは起動出来るのに、TabTip.exeは、なぜ起動できないのでしょうか? また、テキストボックスのクリックでキーボードを表示する方法はあるのでしょうか? 参考に出来るサイトなどを教えていただければ幸いです。 ご教授、よろしくお願いします。
382 :
名無しさん@そうだ選挙にいこう :2013/11/28(木) 20:09:14.73
【1 OSの種類 】 Windows7 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか 】 いいえ 【4 VBAでの回答の可否 】 否 当方初心者です。 指定したセルを削除した際に、 同時に紐づいた複数のセルを自動削除させるためにはどうしたらいいでしょうか。 指定したセルは結合されている場合もあります。 例:A1セルを削除⇒紐づいたH1:J1セルも自動削除。 (H1:J1は結合されていません) もしくは 結合されたA1:A3を削除⇒紐づいたH1:J1セルも自動削除。 (H1:J1は結合されていません) もしかしたらマクロを使わないとできないのかもしれませんが、 調べてもよくわかりませんでしたので、 皆さんに助けて欲しくて書き込みしました。 よろしくお願いします!
>>382 いくつか質問をします。
1 「セルを削除」とは、セルの内容消去のことですか、それとも当該セルを右クリックし「削除」を選ぶことですか?
セルの内容消去とは、当該セルをクリックし[Del]キーを押すことです。
もし、当該セルを右クリックし「削除」を選ぶことであれば、削除後のシフト方向が必要ですが、情報がありません。
2 「紐づいた複数のセル」とは、削除するセルを参照する計算式があるセルのことですか?
それとも別の意味ですか?
3 「同時に紐づいた複数のセルを自動削除」の「削除」は上記1の削除と同じ意味のことですか?
384 :
名無しさん@そうだ選挙にいこう :2013/11/28(木) 22:44:02.04
>>383 さん
レスありがとうございます。
1「セルを削除」とは、セルの内容消去のことですか、
それとも当該セルを右クリックし「削除」を選ぶことですか?
>>仰るとおり、Delキーを押して削除という意味です。
2「紐づいた複数のセル」とは、
削除するセルを参照する計算式があるセルのことですか?
それとも別の意味ですか?
>>計算式自体は存在しません。
『A1セルを削除⇒紐づいたH1:J1セルも自動削除。 』
↑
この条件をみたす式?というもの自体がわからない状態です。
3「同時に紐づいた複数のセルを自動削除」の「削除」は
上記1の削除と同じ意味のことですか?
>>同じ意味です。
言葉足らずで申し訳ないです。
よろしくお願いします。
385 :
383 :2013/11/28(木) 23:03:55.70
>>384 Delキーを押す操作はセル内容の「消去」と呼んだ方がいいです。
問2への回答は??? 計算式が存在しないのに「紐付け」とはどういうこと?
回答になるかどうかわかりませんが、
>>382 の例で書けば
>例:A1セルを削除⇒紐づいたH1:J1セルも自動削除
を見た目だけのことでよければ、条件付き書式っていう方法があります。
A1セルになにか文字や数字が入っているときだけH1:J1セルの文字色を設定し、
A1セルになにも入っていないときはH1:J1セルの文字色を白色に設定する方法です。
条件付き書式はH1:J1セルの方に設定します。(A1セルではありません)
【1 OSの種類 .】 Windows8
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
http://s1.gazo.cc/up/70428.jpg 上図の左側のようなリストがあって、右側のようにC列へ矢印と数字を書き入れたいです。
A列の "あああ" は共通のタイトルです。
B列の数字は1から始まることもあれば、2以上になることもあります。
また、その数字は1つずつ増える数値で、A列のタイトルの1行上にあります。
B列の "aaa" "bbb" は固有の名称です。
388 :
386 :2013/11/28(木) 23:24:31.24
"aaa" は、1、2、3にあります。 1のときは次の2へ行くので "→2" になります。 2のときは前の1から来たので "←1" 次の2へ行くので "→2" 合わせて "←1、→2" になります。 3のときは前の2から来たので "←2" 次がないので "←2" のままになります。 "bbb" は、1、3、4にあります。 1のときは次の3へ行くので "→3" になります。 3のときは前の1から来たので "←1" 次の4へ行くので "→4" 合わせて "←1、→4" になります。 4のときは前の3から来たので "←3" 次がないので "←3" のままになります。
389 :
387 :2013/11/28(木) 23:43:58.99
>>388 ループとFind(検索開始位置と検索の方法を順と逆)を駆使したらできそうだけど・・・・・・おやすみなさい
>>384 紐付けってのはExcelの操作として紐付けられてるのではなく
>>382 の中で紐付けしたい情報と捉えれば良いのか?
例えば[商品の名称]と[売価]・[数量]のような。
言葉通り、実際に自動で消去する必要があるならマクロ必須だが
表の上で見えないようにするだけでいいなら
>>385 の方法で地の色と同化させたり、IF関数で表示しないようにすればいい
Excel初心者ですが #DVとエラー表示になっているセルにてついてですがIF関数を使うと回避ができるような解説を見ましたが 指定箇所が大杉て厳しい状況なのですが 検索等でエラー箇所を割り出して指定数値 0 (ゼロ)へ全セル書き換えてしまうようにすることはできないのでしょうか?
393 :
名無しさん@そうだ選挙にいこう :2013/11/29(金) 01:28:31.13
>>391 別シートに
=if(iserror(),0,xxx)の形を使って
全部書き写しちゃう
>>381 Sub Sample()
Shell "C:\Program Files\Common Files\Microsoft Shared\ink\tabtip.exe", 1
End Sub
もしかしたら場所変わってるかも
>>391 表示だけならオプションの表示、エラー値か何かがあった気がする
395 :
382 :2013/11/29(金) 09:23:45.59
>>383 >>390 ご返信ありがとうございます。
私が言っている紐づけとは、「紐づけしたい」情報です。
言葉足らずすいませんでした。
具体的には、
A1が「A美容室」という名称だった場合、
H1に「A美容室」I1に「10,000円」J1に「12,000円」と入力されています。
※H1は店舗名、I1は予算、J1は売上になっています。
A1をDelで消去したときに、
同時にH1:J1も消去したい・・・という意味です。
説明不足で申し訳ないです。
マクロの設定や記録はなんとかできますし、
わからないとこは勉強します。
マクロでも構いませんので、どなたかご教授いただけないでしょうか…。
396 :
382 :2013/11/29(金) 09:51:57.41
すいません補足ですが、I1とJ1はオートSUMで合計値が出されているので、 見えないようにするのでなく消去したいです。 よろしくお願いします。
>>395 単に見えなくするだけじゃ、ダメってことなら・・・
紐付の情報を別シートに一覧形式(※)で記録しておいて、
処理対象のシートの WorksheetのChangeイベント で起動、
targetセルのアドレスで紐付シートの方を検索して該当あったら
対応するセルを消去
でいけるかな。
※ A列に A1、B列に H1:J1 みたいに記録しておく
結合セルの場合は結合した範囲の先頭(左上)セルのアドレスがtargetセルになると思う。
398 :
名無しさん@そうだ選挙にいこう :2013/11/29(金) 10:02:02.19
>>395 Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "" And Target.Column = 1 Then
Cells(Target.Row, 8).ClearContents
Cells(Target.Row, 9).ClearContents
Cells(Target.Row, 10).ClearContents
End If
End Sub
399 :
名無しさん@そうだ選挙にいこう :2013/11/29(金) 10:09:50.54
結合してるなら効果 Private Sub Worksheet_Change(ByVal Target As Range) If Target.MergeCells Then Else If Target.Value = "" And Target.Column = 1 Then Cells(Target.Row, 8).MergeArea.ClearContents Cells(Target.Row, 9).MergeArea.ClearContents Cells(Target.Row, 10).MergeArea.ClearContents End If End If End Sub
400 :
名無しさん@そうだ選挙にいこう :2013/11/29(金) 11:07:23.17
>>394 381です。
回答有難うございます。
>もしかしたら場所変わってるかも
場所は変わっていません。直接tabtip.exeを起動するとキーボードが表示されます
Sub Sample()
Shell "C:\Program Files\Common Files\Microsoft Shared\ink\tabtip.exe", 1
End Sub
をテストしましたが、「プロシジャーの呼び出し、または引数が不正です」
のエラーが出ます。
0,1,2,3,4,6 全てテストしましたが全く同じです。
開発用のdellのデスクトップパソコン&excel2003では、仮想キーボードが表示されます。
動かしたいのは、acerのICONIA W3-810ですが、それではエラーになってしまうんです。
何が原因なのでしょう?
再度、よろしくお願いします。
401 :
382 :2013/11/29(金) 11:09:38.28
>>397 >>398 >>399 むむむ・・・。
これが答えというわけですね!
それぞれのワードを検索して調べたら
なんとかできるかもしれません!
結構難しいですが、
何とかやってみます!!
ご回答いただきました皆様、
本当にありがとうございました。
402 :
名無しさん@そうだ選挙にいこう :2013/11/29(金) 15:38:14.40
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 SP3 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 家計簿で A1〜A12まで1月〜12月の各月合計額、A13に総合計、A14に1月からの平均額を出したいのだけど A14の平均額を出すのに 例えば1月から6月までの平均を見たい時にB1に「6」と入力すると A14に1月から6月までの平均(A1からA6まで)が出る数式を教えて下さい。 A14=《A1〜A(B1)》/B1となる数式です
403 :
名無しさん@そうだ選挙にいこう :2013/11/29(金) 16:17:50.56
>>403 すいません、ありがとうございます。
403で出来ましたけど縦計算ではなく、横計算にしようと思い
A1〜L1に1月〜12月、M1に合計、N1に平均、A2に月数で
やるとするとどういう式になりますか?
N1=《A1〜(A2月数)1》/A2
A2月数がA1・B1・C1・・・・L1と・・
二度手間ですいませんがお願いします。
>>386 こんなのでどうですか?
Option Explicit
Dim tate_s As Long, tate_e As Long, tate As Long
Dim c As Variant, tate_next As Long, wk1 As String, wk2 As String
Sub test()
tate_s = (Range("A1").End(xlDown).Row) + 1
tate_e = Cells(Rows.Count, "B").End(xlUp).Row
tate = tate_s: tate_next = f_next(tate, tate_e)
Do
If Not (Cells(tate, "B").Value = "") Then
wk1 = f_find(tate, Cells(tate, "B").Value, "←")
wk2 = f_find(tate, Cells(tate, "B").Value, "→")
If wk1 = "" And wk2 = "" Then
Cells(tate, "C").Value = ""
ElseIf Not (wk1 = "") And wk2 = "" Then
Cells(tate, "C").Value = wk1
ElseIf wk1 = "" And Not (wk2 = "") Then
Cells(tate, "C").Value = wk2
Else
Cells(tate, "C").Value = wk1 & "、" & wk2
End If
End If
tate = tate + 1
If tate > (tate_next - 3) Then
tate = tate_next + 1: tate_next = f_next(tate, tate_e)
End If
Loop Until (tate > tate_e)
End Sub
続く
>>405 の続き
Function f_next(p1 As Long, p2 As Long) As Long
f_next = Cells(tate, "A").End(xlDown).Row
If f_next > p2 Then f_next = p2 + 3
End Function
まだ続きますが、切りがいいのでいったんここで区切ります。
>>406 の続き
Function f_find(p1 As Long, p2 As String, p3 As String) As String
Dim kensaku_area As String, kensaku_strt As Variant, j As Long
f_find = ""
Set kensaku_strt = Cells(p1, "B")
Select Case p3
Case "←" ' 元を上方向に探す
kensaku_area = "B" & tate_s & ":B" & p1
Set c = Range(kensaku_area).Find(What:=p2, After:=kensaku_strt, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If c Is Nothing Then Exit Function
Case "→" ' 先を下方向に探す
kensaku_area = "B" & p1 & ":B" & tate_e
Set c = Range(kensaku_area).Find(What:=p2, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
If c Is Nothing Then Exit Function
Case Else
MsgBox ("異常"): Exit Function
End Select
If c.Row = p1 Then Exit Function
' 該当セルから表番号(B列の数字)を取得
j = c.Row
Do
j = j - 1
If Not (Cells(j, "A") = "") Then Exit Do
Loop Until (j = tate_s - 1)
f_find = p3 & Cells(j - 1, "B").Value
End Function
以上です。前提としてA列には"あああ"などの共通のタイトルだけがあるものとします。
>>405-407 の補足
表の位置関係はシビアです。A列の共通見出しのセルの1行上のB列に数字があることを前提としています。
同じく、A列の共通見出しの行のB列(例図では空欄)は処理の対象としていません。
A列の共通見出しの行の1行下から処理対象としています。
409 :
386 :2013/11/29(金) 21:10:21.18
>>405-408 凄い、ありがとうございます。
何をどう処理してるのか良く判らないですが、希望どおりに出来てます。
VBA歴は2年半くらいですが、Functionなんて使ったことありません。
精進します。
402の再質問です 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 SP3 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 家計簿 A1に1月分、B1に2月分・・・L1に12月分と入力 1月から特定の月までの平均を自動で計算したいので A2に例えば「6」と入力すると1月から6月(A1〜F1)までの 平均を出す数式を教えてください =《A1〜(A2月数)1》/A2 お願いします。
411 :
名無しさん@そうだ選挙にいこう :2013/12/02(月) 17:00:18.33
>>410 =SUM(INDIRECT("r1c1:r1c"&A2,0))/A2
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 A列 各データ毎のフォルダ B列 ファイル名 D列 担当者名 E列 データ名称 〜 となっているテーブルがあるんですけど、このテーブルでD列の担当者名毎の件数を 知りたいんですが簡単な方法とかってありませんかね。 一応、担当者名の昇順で並べてはあるんですが、なんせ合計で2万行ぐらいあるんで、とても手作業では…なんです。
>>413 1行=1件になってて、行数を数えるだけならピボットテーブルで一瞬
別に担当者ごとの順番に並んでなくてもカウントできる
415 :
名無しさん@そうだ選挙にいこう :2013/12/03(火) 12:41:35.71
値が必要。titleの横に人数の列をつくり1を入れとく。それを集計すればいい
テーブルとして書式設定と、 フィルター&セルの書式設定で色付けしたものの違いってなにかありますか? 行や列を追加したときにテーブルが拡大する、ピボットテーブル作る準備としてテーブルが必要、くらいは分かるのですが、他に違いはあるのでしょうか?
418 :
名無しさん@そうだ選挙にいこう :2013/12/03(火) 13:00:13.28
宜しくお願いします 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 シート1に入力したものをシート2にコピーしたいのですが、 シート1のA1に「=B1」と入力してある場合に、A1、B1をシート2に張り付けても シート2のA1セルがシート1のB1の値を参照してしまいます これをシート2のB1を参照させるようにしたいのですが何か方法がありましたら教えてください お願いします
>>419 ホントにそうなりますか?
自分の環境も同じ(Win7pro、EXCEL2010)ですが、
Sheet1のA1 =B1、B1 なにかの値 としたうえで、A1:B1を選択してコピー
Sheet2のA1セルに普通にペーストすると、
Sheet2のA1 =B1、B1 Sheet1のB1と同じ値 になります。
419さんの方ではSheet2のA1の計算式が=Sheet1!A1になるのですか?
セルの参照が絶対参照になってるんでねーの?
>>420 すいません
分かりやすく書いたつもりが問題を再現できてませんでした
B1をシート2に移動した際、B1以外のセル(例えばC1)にペーストしてます
そのC1セルを参照させたいのです
これひとつなら「=C1」と入力しなおせばよいのですが他にも数百個
同じように移動させたいので何かよい方法はありませんか?
シート2には元々入力済みのデータがありシート1とシート2を統合して一纏めにしたいんです
>>422 B1を切り取り、貼り付け
でいいんじゃないの?
424 :
420 :2013/12/04(水) 10:01:59.59
>>422 >B1をシート2に移動した際
これでやっと理解できた。それでも422の言うとおりにはならない。
コピー・ペースト と カット・ペースト では結果が異なる。シート1のA1に =B1 の計算式がある場合、
A1セルだけをシート2のA1にカット・ペーストすると
シート2のA1の計算式は=Sheet1!B1 と変化し、引き続き参照元セルは変わらない。
また、シート1のB1セルだけをシート2のB1セルにカット・ペーストすると
シート1のA1の計算式は=Sheet2!B1 と変化し、やはり参照元セルは変わらない。
しかし、A1:B1をまとめてカット・ペースト(参照元と計算式を一緒に移動)すると
シート2のA1の計算式は=B1 となり、元のシートを参照するような変化はしない。
(
>>420 の A1、B1をシート2に張り付けてもシート2のA1セルがシート1のB1の値を参照 は再現できず)
>>420 にあるように、普通にコピー・ペーストの操作をしたら他シート参照になるはずはない。
元々の計算式がSheet2を参照してたというなら別だけど。それだったら置換機能で
Sheet2! を削除したらいいだけのこと。
425 :
名無しさん@そうだ選挙にいこう :2013/12/04(水) 12:30:15.14
>>403 400です。
Shell "explorer.exe C:\Program Files\Common Files\Microsoft Shared\ink\tabtip.exe", 1
でキーボードを表示することが出来ました。
なぜか、よくわからないけど(^_^;)
ありがとうございました。
>>425 おめでとう。あと、このスレにかかわらないんだけど、意味のない改行は控えてね。
ブログなら勝手にして下さい、って思うけど、質問等の掲示板では嵐と捉えられないからね・・・
オートフィルターで集計するときにSUBTOTALで抽出したデータのみの集計をやりますが SUBTOTALは検出方法が限られているようですが自由な関数や条件を追加や追記することはできないのでしょうか?
>>428 SUBTOTALを使わない方法を検討してみては
vlookupを使う場合,エラー回避のために =if(iserror(match(A1,B1:B5,0)),"",vlookup(A1,B1:B5,1,0)) という風な式を使いますが,これを簡略化できないでしょうか? =if(isnumber(A5),A5,0)を=n(a5)と簡略化できるようにしたいです
>>430 前者は
=IFERROR(VLOOKUP(略),"")
でいいんでない?
後者は
=A5*1
>>430 Calcなら=n(vlookup(A1,B1:B5,1,0))でいけるんだけどねぇ・・・
俺と一緒にCalcに乗り換えようぜ?
あとvlookup()よりもindex(match())のほうが長い割に軽いのでオススメ
今更感はありますが 1行複数項目で上から順番に並んでいるデーターに 所々エラーとなっている不用なゴミデータが混在している状態なのですが 全体の並びを崩すことなく不用な行を1行ずつ削除し 間が開いた箇所を上に詰めるこの作業が数百〜千?箇所あるばあるのですが どのようにやれば合理的に削除できるでしょうか? ソートを考えましたが元の並びが崩れてしまいます、、 こういう事を1発でやるコマンドとかあるのでしょうか?
435 :
名無しさん@そうだ選挙にいこう :2013/12/08(日) 15:16:30.11
一発じゃないけどジャンプ-選択-エラー値で選択して右クリ削除で上シフトとかでいけんじゃないの
>>434 作業列に連番を入れてからソート
エラーを消したら、さっき作った作業列でソートすれば元の順番に戻る
>>434 エラーって #DIV/0! とか #REF になってることかな?
作業列(C列と仮定)を利用したらできる。エラーとなっている列が固定しててB列と仮定すると・・・
C1セルに =IF(ISERROR(B1),"",ROW()) と入力して下方向にコピーする。
B列にエラーがなければ当該行数が、エラーがあれば空白""になる。
C列全体をコピー/値貼り付けした後、シート全体をソート(もちろんキーはC列)する。
数値が優先するから空白””になってた行(=エラーのあった行)は後の方に固まる
エラーのある列がひとつでない場合(A列とB列と仮定)は、作業列をC列と仮定して
C1セルに =IF(ISERROR(A1&B1),"",ROW()) のようにISERROR()のカッコの中を&で連結
>>434 フィルターを使ってゴミデーターをデリートーしてやればいいんじゃねー?
>>435 >>436 >>437 ご丁寧にありがとうございます。
やはり1発で消せる魔法のコマンドは無いのですね。。
ソートは他のシートを参照している計算式(知らない人が作った)がはいっていて無茶苦茶になりますw
数値化して
>>436 さんの方法で並べ替えるか
地道に
>>436 さんの方法で削除するかでしょうか。
>>437 さんの方法は巧妙ですねぇ今後活用させて頂きます。
ありがとうございました。
エクセルの良い学習ソフトとかありますか? 当方、レベルとしては中の下くらいだと思います
MOSの問題を解くのが速道と思います。
ExcelはGPUに対応してますか?
>>443 dクス
コアな計算の高速化に使われるのかと思いきやグラフ表示に少し使われてるだけのようですね。
何気にパワーポイントの画面切り替えがGPU演算対応とは勉強になりました。
>>443 ワークシートが数ギガバイトのサイズになっても動くと言うのも初耳ですね。
壊れるのではないかと思い数メガおきにチマチマ分散していましたが、ひょっとして無駄な作業だったか。。w
>>445 いや、やめた方がいい
rand()で埋めてみたが、確か11000000行*30列ぐらいでメモリを食い尽くしてスワッピングしまくった
CPUが早くなっても、メモリの上限があるのを忘れてはいけないよ
分割の単位を数メガから数百メガに増やすだけでも、かなり手間は減りそうだけどな さすがに1ギガオーバーは現時点ではやりたくないけど もっとマシンのスペックが上がらないと
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 はい 読み取り専用で開いているファイルに対して、 解除後にそのまま編集を続ける方法ないですか?( Excel2003の読み取り専用ボタンを押したときの挙動)
>>449 開く時に全て決まってしまう、OSレベルの問題です。
別名で保存、その後元のファイルと入れ替えるしか無いです。
>>449-450 > 別名で保存、その後元のファイルと入れ替えるしか無いです。
その処理するマクロ作ればいいだけやん。
Excelの勉強がすごくつまらないんですがなんとかなりませんか 使いこなせるようになれば仕事にすごく役立つのはわかるし、年収アップにもつながるかもしれないのはわかるんですが
>>452 多分それは年収がアップした先に強くやりたいことが無い、欲しいものがないんでしょう。
だらだら過ごす>年収アップ
なら、やらなくてok。むしろそのほうが人生楽しめると思いますが、どうでしょう?
別に上を見続けることだけが人生ではないと思います。
空いた時間で空を眺めたり、植物を育ててみてはいかがでしょう。
暇で暇で仕方ない、勉強でもするか、となった時にするといいと思います。
>>448 できなかったら困るだろ
てか、試しに適当な文書作ってやってみりゃいいじゃん
いちど削除するにして保存した文書の
削除されたデータを戻すことはできんがな
>>454 レスはありがたいんですが、、、別に文書が消えるわけじゃないですよ。
で、その戻し方が判らないというか、そこにチェックが出来ないようになってるんで
どうすればチェックができるようになるかきいているんですけど。
勿論新規に作成したブックでは有効になっていますけどね。
ある程度使っている身としては、そんなチェックなんて意味が無いと思っているので気にしていない人が多い っていうかそんなの気にするって、とても個人情報の漏洩に疎いとしか言えないよ バイナリ単位で見れば、確かに発見はできる だが、そもそもPCに個人情報を入れるべきではないんだよね。 これはわかってほしい。 本当に個人情報の漏洩を気にするなら、PCに個人情報を一切入れないようにしよう。 なんらかの呪いで、どうしても個人情報を入れる必要があり、消す必要があるならデータを新規のブックにコピーしよう。 それで全て解決だ
>>455 文書が消えるんでなくて、文書のデータ、ね
プロパティから個人情報を削除した後保存したら、その個人情報戻せないよって意味
>>457 そういうことですか。つまり消したからもう戻せないって事で。なるほど。
ありがとです。
>>443 色々調べたけど64bit対応版はかなり色々と問題があるようだな。
▼━質問テンプレ (必ず使ってね) ━━━ 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 別のエクセルファイルからコピーすると書式(フォントサイズ、罫線、etc)が コピーされたりされなかったり(元の書式が優先されたりコピー先の書式が優先されたり) するんですけどこれって法則性あるんですか? エクセルの設定でコピー時の書式の優先順位を決めるような 設定ってないですよねえ?
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 いいえ 関数内で指定する文字列の一部だけ色を変える方法があれば教えてください。 01日(日)、02日(月)、03日(火)・・・07日(土) 等のように、一週間分の連続する日にちと曜日を7つのセルに並べたかったのですが、 01を変更すればそれ以降も自動的に変更されるようにしようと思い、 月曜以降のセルに =LEFT(A1,2)+1&"日(月)" 等と入力しました。それで表示はできるのですが、ただ、土曜日の「土」だけは青くしたいのです。 (日曜も赤くしたのですが、それは参照元なので直接入力で問題なくできました) 可能なら、数字と文字列(「日(月)」等)は同じセルに入れたいのですが、 よろしくお願いします。
多分無理じゃね〜かな セルわけるよろし
464 :
462 :2013/12/13(金) 16:59:19.11
わかりました。 神速の回答、大変助かります。 あきらめます。 ありがとうございました。
>>462 表示形式でできない?
#[黒]"("[青]"土"[黒]")"
こんなの。セルの入力は日付だけにして。
適当に書いてるから間違ってるかも。
詳しくはexcel 表示形式でググれ
>>461 罫線がコピーされないケースについてだけど、
たとえばA1の右とB1の左は同じ場所に線が引かれるけど、別のデータとして扱われる
A1の右に線を引いてB1をコピーするとB1の左に見えている罫線はコピーされない
467 :
462 :2013/12/13(金) 20:52:51.58
わかりました。 あきらめていましたが希望が見えました。 ありがとうございます。
468 :
462 :2013/12/13(金) 22:10:24.88
>>465 やってみましたが、ユーザー定義の色指定は、入力値が正の数か負の数か文字列かによって
表示全体の色を設定するもののようで、文字列内、部分部分での色変更はどうやらできないようでした。
ここは妥協し、数字も青にしていいか、担当者と相談します。
情報ありがとうございました。
470 :
名無しさん@そうだ選挙にいこう :2013/12/14(土) 18:53:25.71
グラフ機能をマスターしたいのですが 一番うまくまとまっている解説サイトはどこですか?
472 :
名無しさん@そうだ選挙にいこう :2013/12/15(日) 11:03:09.62
グラフ機能をマスターしたいのだ 一番うまくまとまっている解説サイトはどこだ?
>>472 マスターってのは具体的にどういう状態なんだ?
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 ユーザー定義関数を作ったのですが使用できません 昨日試しに何もないブックで作ったら使用できたのですが、今日別のブックでやってみたら 関数名の前に「'ブック名関数名」という感じでブック名がついてしまいます これが原因だと思うのですがどう対処したら良いでしょえか?
>>476 という感じ、じゃなく実際にどうなってるか教えてくれないとわからん
関数の中身はどうでもいいから名前とかの部分をまるごとコピーしておくれ
>>477 trend関数のユーザー定義なんですが
='12.20k.xlsm'!module2.myTREND()
になります
関数名も '12.20k.xlsm'module2.myTREND となってます
>>478 ブックとユーザー定義関数は基本的にセット
今使ってるブックはbook1.xlsmとして…
myTREND()は12.20k.xlsmの標準モジュールに書いているものから引っ張ってきている。
book1でブック名を省略したければbook1の標準モジュールに書く必要がある。
もしくは個人用マクロブックに登録すると良い。
>>479 どうやったらbook1の標準モジュールにかけますか?
今回も同じbookからVBAを立ち上げたんですが、、、
483 :
名無しさん@そうだ選挙にいこう :2013/12/15(日) 22:51:48.20
>>474 ありがとう。
しかし古いバージョンじゃない?
2007のがいい。
そのサイト解説の詳しさはかなり優秀だから、そんな感じので2007かそれ以上のバージョンのはありませんか?
485 :
名無しさん@そうだ選挙にいこう :2013/12/15(日) 23:05:16.92
>>485 この人は中級向けに対して教えるセンスは最強と言っていいわ。
このサイト以上のサイトも探せばあるかも知れない
しかし旧版でいいからこのサイトで「センス」を吸収して、最新型に活かすのが一番早い
どうしても2007以降がいいなら「Excel グラフ 2007」辺りでぐぐって時間を無駄にすればいいと思う
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ほぼ算数の質問になってしまうのですが 材料A50% 材料B30% 材料C20% で作るものがあるとして 現在の在庫数が 材料A100kg 材料B30kg 材料C50kgの時 現在製造可能な最大数量(kg)はどういう計算したらよいでしょうか? ↓表のイメージ↓ A B C 1 材料A 100kg 50% 2 材料B 30kg 30% 3 材料C 50kg 20% 4 製造可能数量 (ここに答えを出したい)
>>487 D1=+B1/C1
下にオートフィル
A4=min(d:d)
・・・でいいのか?
=min(100/0.5, 30/0.3, 50/0.2) で計算できるだろ? 全角数字処理をどうにかしないと面倒だな
業務でsumproductを使った配列数式の計算などはよく使うのですが =SUM(MOD(INT(ROW(A1)/4^{0,1,2}),4)*10^{0,1,2}) のような指定方法で3進数表記が順次作り出せると聞き、驚きました。 こういった配列数式を使用した例を多く載せたサイトがあれば教えて下さい。 また何か面白い例題や、一見難しい問題でも配列数式を使ったら簡単に解けるような例題をご存知でしたら 勉強の参考にしたいので教えて下さい。
>>491 mougやヤフー知恵袋で配列数式で検索してみては・・・
と思ったけど{0,1,2}って配列定数って言うんじゃね?使わないからよく知らないけど
配列定数は結局セルに入れるのと同じだから作業列でやったほうがいいと思う
どっちでもいいけどな〜俺は使わないかな〜
VBEを使ってカレイダグラフを起動し、Excelデータをカレイダのデータシートへ貼り、グラフを作らせることは可能なのでしょうか?
495 :
名無しさん@そうだ選挙にいこう :2013/12/18(水) 11:24:11.70
教えてください。 まず、ファイルAとファイルBと、ふたつのファイルに別々の表があります。 Aは総合的なデータが入っており、Bはそれを元に利益等を計算しようとしています。 そこで質問です。 BのセルからAのセル(「顧客名称」「金額」「数量」等)を参照し、 Bにおいて利益などを自動計算するようにしてるのですが、 できれば受注が失敗した顧客に関してはBにはデータとして反映したくありません。 (空白行も作りたくない) そこで、Aの「受注成否」セルを参照し、「成功」の場合のみBに反映されるような方法はありませんでしょうか。 できればVBAを使わずに作りたいです。 よろしくお願いします。
>>495 ファイルA
やまだ 100 5 成功 1
ささき 200 10 失敗 0
わたなべ 50 1 成功 2
のように作る。
一番右の1,0,2は
E1=IF(D1="成功",COUNTIF($D$1:D1,"成功"),0)
こんな感じで、成功が何個目かを表す
ファイルB側は
=INDEX(A:A,MATCH(ROW(),E:E,0))
下にオートフィル
試しにファイルAのG列にでも置いてみるといい
頑張れ。結構大変+間違いが起きそうだから諦めてもいいと思うぞ。
497 :
名無しさん@そうだ選挙にいこう :2013/12/18(水) 11:49:52.49
>>496 ありがとうございます。
一見しただけじゃ理解するのも大変ですが、
なんとか頑張ってみます!
498 :
名無しさん@そうだ選挙にいこう :2013/12/18(水) 13:51:03.44
フォントをMeiryo UIにすると文字が滲むんですが どうすれば滲みを解消出来ますか? Windows8 Excel2013 です
500 :
名無しさん@そうだ選挙にいこう :2013/12/18(水) 14:08:19.44
>>494 テクニカルサポートに問い合わせてみます。
Excelで同じぐらい綺麗にグラフを表現出来れば良いのですが、きちんと発表するとなるとカレイダグラフに負けますよね。
お願いします 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 サイトから表をコピーしてエクセルに張り付けているのですが、 張り付けた回数を自動でカウントする方法がありましたら教えてください。
>>502 サイトからコピーしたものか、サイト以外からコピーしたものか、判断する術はあるの?
宜しくお願いします。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 「検索と置換」画面ですが、検索タブの方の「検索する文字列」が入力できません。 クリックしても文字入力カーソルが表示されない状態です。 置換タブの方は入力カーソルが表示されます。どうしてでしょうか?
>>502 以前、気象庁のページから
過去の気象データを取得するマクロ組んだことが有るけど
そのときは一日分のデータを縦に並べてエクセルのブックに貼り付けたから
データの行数で貼り付け回数がカウントできた。
(俺のマクロではそんなもん数える必要が無いから実際には数えちゃいないけど。)
君もそういう風にやればいいんでない?
もし、そういう風に貼り付けた位置から回数がカウントできないようならこの方法は使えないけど、
そもそも具体的にどんな貼り付け方をしてるのか
一切説明が無い現状では答えられるヤツもそうそう居ないと思うよ。
表の行数が固定なら行数かぞえたらそのまま出るし 表に日付なり時間なり固有のデータがあるのなら、その数をカウントすればいい 生データを本人しか把握していない以上は可能とも不可能とも言いようがないよなー
クリップボードを監視して、貼り付けイベントの発生とワークシートの変更が同時なら貼り付けられたと判断するとか そもそもなんのために貼り付けの回数を調べたいのか、 本当に知りたいのは、もっと別のことなんじゃないのかなあ
サイトから表をコピーして、エクセルに貼り付けるお仕事なんじゃないの? 出来高払いの。
OS windows 8 excel2013 VBAの記述で困っています。 フォルダを参照してBOOKを開き、コピーし、別のブックへ新しくシートを作ってペーストして閉じる、 ということを繰り返したいのですが困っています。 以下のように参照先を定義します dim a(2),b(2),c(2) as integer dim x,y,z as string a(0)=フォルダ0 a(1)=フォルダ1 a(2)=フォルダ2 b(0)=レイヤー1 b(1)=レイヤー2 b(2)=レイヤー3 c(0)=BOOK1 c(1)=BOOK2 フォルダ0〜2にはそれぞれレイヤー1〜3フォルダがあり、そのフォルダの中にもそれぞれBOOK1、BOOK2が入っているような構造です。 全部でBOOK1、BOOK2の数はそれぞれ3×3=9個あることになります フォルダ0のレイヤー1のBOOK1で用を済ませたら 次はレイヤー2のBOOK1で、 次はレイヤー3のBOOK1で、 それが済んだらフォルダ1のレイヤー1の…というように、 ある変数は固定して、ある変数は動かすという文ははどう書くのでしょうか。 大きなfor nextの中に、小さなfor nextを入れるようなイメージで書くのだと思うのですが、1日調べても及びませんでした。
>>510 Dim x, y, z As String
と書くと、zだけがStringになり、xとyはVariantになる
全部Stringにしたかったら
Dim x As String, y As String, z As String
と書く必要がある
さらに言うと、こういう書き方は可能だけど推奨されない
Dim x As String
Dim y As String
Dim z As String
こうやって全部バラバラにするのが推奨される書き方
>>510 Forを重ねることを「入れ子」と言う
入れ子の書き方は、こう
Dim a(2) As String
Dim b(2) As String
Dim c(1) As String
Dim x as Integer
Dim y as Integer
Dim z as Integer
a(0) = "フォルダ0"
a(1) = "フォルダ1"
a(2) = "フォルダ2"
b(0) = "レイヤー1"
b(1) = "レイヤー2"
b(2) = "レイヤー3"
c(0) = "BOOK1"
c(1) = "BOOK2"
For x = 0 To 2
For y = 0 To 2
For z = 0 To 1
' a(x) と b(y) と c(z) が処理するブックを表す
Next z
Next y
Next x
>>511 >>512 ありがとうございます。
宣言は後ろしか定義されないのですね。
以降記述の仕方に気をつけます。
入れ子のように書くときは、半角でズラしていけば良い、ということでしょうか。
一つ引っかかっているのは、ご指摘のようにズラすことなく、
for x
for y
for z
workbooks(a(x)&b(y)&c(z)).open
workbooks(a(x)&b(y)&c(z)).worksheets(Sheet1).cells.copy workbooks(LIST).worksheets(SHEET1)
next z
next y
next x
と書くとどういう風に指示していることになっているのでしょうか。
x,y,z→0,0,0→1,1,1のように一斉に変わるのでしょうか。ここがわからなくて混乱しています。
>>513 VBAの場合、コンピューターはスペースを最初っから全部無視するんで
行の先頭のスペースは、あってもなくても結果はまったく同じ
人間がプログラムを見る時に、入れ子の深さなどが一目でわかるようにしてあるだけ
>>513 for next は指定の条件を満たすまで
そのループ内の処理を繰り返す。
条件を満たしたかどうかはforの所で判定していて、
nextの所で条件が変化する。
つまり、君の書いたコードだと、
xのループ内にyのループがあって、更にその中にzのループがある訳だから、zのループが終わるまでyのループは影響を受けないし、yのループが終わるまでxのループは影響を受けない。
一旦zのループが終わると、yのループで条件が変化して、再びzのループに処理がいったら、またzのループが終わるまでyもxも変化しない。
以上、クドクド書いたけど、数値の変化で言うと以下の通り。
(x,y,z)=>(0,0,0)=>(0,0,1)=>(0,0,2)=>(0,1,0)=>(0,1,1)=>(0,1,2)=>(0,2,0)・・・以下略
516 :
515 :2013/12/20(金) 17:52:07.02
>>513 ゴメン、xとz間違ってた。
x と y が 0 to 2 で z が 0 to 1 だったのか。
(x,y,z)=>(0,0,0)=>(0,0,1)=>(0,1,0)=>(0,1,1)=>(0,2,0)=>(0,2,1)=>(1,0,0)・・・以下略だった。
517 :
名無しさん@そうだ選挙にいこう :2013/12/20(金) 23:28:58.13
>>513 です。
>>514 >>515 >>516 ありがとうございました。とてもよくわかりました。おかげさまできちんとファイルを開くことが出来ました。
さらに質問を重ねて申し訳ないのですが、各レイヤーごとのデータをLIstブックにまとめたいとき、少し疑問に思う事があります。
Listブックにはシート名がレイヤー1、レイヤー2、レイヤー3というシートが3枚用意してあります。
フォルダ0のレイヤー1のBook1の1列目をコピーして、Listブックのレイヤー1シートの1列目へコピー
フォルダ0のレイヤー2のBook1の1列目をコピーして、Listブックのレイヤー2シートの1列目へコピー
フォルダ0のレイヤー3のBook1の1列目をコピーして、Listブックのレイヤー3シートの1列目へコピー
以降はフォルダの数字が1増えると、コピーする場所、貼付けるシートは同じだけど、列は+1列ずらして、ペーストしてほしいという指示をしたいのです。
このようなことをしたいとき、x−y−zの順でfor nextをするとフォルダが変わると、貼付ける列も変えてくれという指示をどう出すのかがわからなくなってしまいました。単純な入れ子にならないように思えるのです。
結局ファイルを開いた後、
workbooks(a(x)&b(y)&c(z)).worksheets(Sheet1).columns(1).copy
IF a(x) = "フォルダ0" then
workbooks(LIST).worksheets(c(z)).range("A1").pastespecial paste:=xlpastevalues
というようにすべてのパターンについてif文で書くことですませました。上手く入れ子を作れば変数を用いて書けるものなのでしょうか。
もしよろしければ教えていただけないでしょうか。
518 :
名無しさん@そうだ選挙にいこう :2013/12/21(土) 10:23:02.67
みかん 2 りんご 3 バナナ 2 みかん 5 みかん 6 りんご 1 りんご 2 みかん 3 バナナ 1 みたいな表があります。 これを下記のように変換するには、一番手っ取り早い方法はなんですか? みかん 16 りんご 6 バナナ 3
ピボットテーブルで
520 :
518 :2013/12/21(土) 11:18:51.18
パペットテーブルってなんですか?
急に仕事で必要になりExcelを速攻で使い方をマスターしたいのですが 3万円ぐらいするセミナーとかあるようですがどうなのでしょうか? より速く使えるようになりますでしょうか?
524 :
名無しさん@そうだ選挙にいこう :2013/12/21(土) 16:08:34.57
>>522 100円ショップで売ってるような本のほうが初めての人にはよっぽどいい。
3万円のセミナーは初心者は最初の賞の最初のセクションしかついていけず、残りは全く理解できずお金のむだ。
>>522 何をしたいのか具体的に書けばいいのに
マスターって何なんだ
527 :
名無しさん@そうだ選挙にいこう :2013/12/22(日) 01:09:11.48
ちょっとお聞きしたいのですが スパークラインで株価グラフ(ローソク足)を表示はできないでしょうか excel2013です。 よろしくお願いします。
528 :
名無しさん@そうだ選挙にいこう :2013/12/22(日) 10:48:00.48
できないよ
終値だけにしとけ w
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 A1〜A10まで会社名が入力してありB1〜B10に月毎の売り上げがペーストしてあります C1〜C10でランク関数で順位付けをしています この場合に例えば現在B1〜B10に1月の売り上げがペーストしてあり、次に2月、3月、4月・・・12月と順番に売り上げをB1〜B10ペーストした時、 各会社のC1〜C10の一位、二位、三位の回数をD列以降で自動でカウントできるような関数、または方法はありませんか?
1月から12月までひとつの表にすればいいじゃん
>>531 あるけど、その要望通りにやるのは無駄が多すぎる
どのみち存在しない(消去された)データをカウントするとかは不可能なので
VBAでも使って別な場所に過去データを退避させておかなければならないわけだが
だったら最初から会社名軸と月度軸のテーブルを別シートに作って
元のシートには入力規則のリストなどを使って月度を選択する部分を作り
それを変更するとVLOOKUPなどでその月の売り上げを参照するようにすれば
VBA使わずともデータシートから過去の売り上げも含めたランキングカウントは簡単に出せる
>>533 VBA無しの方法もう少し詳しく教えてもらえませんか?
>>532 過去7年分の月毎売り上げ以外にも日毎の売り上げ順位も同じ方法で、調べようと思っていますので表が大きくなりすぎます
素人にありがちなんだけど 入力と出力は分けろ 出力はピボットテーブルがいいかもしれないしVLOOKUPがいいかもしれない どっちにしても入力はひとつのテーブルにまとめる それしかない
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 エクセル2010のラベル印刷機能を使って、”普通の”差込印刷はできますか? 白紙のA4に差込データを配置するだけならできるのですが…。 職場での日誌のフォーマットに日付を入れて一月分をまとめて印刷するだけなのですが、 私はVBAができるのですが、私以外の人でもメンテできるように、できるだけ標準機能で実現できればと思います。 以下の条件なんですがどうでしょうか? 日誌のフォーマットはエクセルで作った表を使用したい 日付と曜日を入力するだけ お願いします
>>536 ないと思います。apiなど拾ってくればいけるかもしれませんが、あまりないきがします。
印刷はボタンを押すだけ に集約してみてはどうでしょう
私自身そういう微妙な機能に振り回されたことは多々ありますが、結局ボタン一個が楽だな、という印象は受けました
個人的にwordのマクロはあまり好きではありませんので、やるなら頑張ってくださいといった感じです。
>>537 ども
一か月分を一枚のシートにコピーしてしまうという方法を思いつきましたが
フォームの変更があったときがめんどくさいなあ
フォームの変更がなさそうならベタ書き ありそうなら変数などにしっかり入れる or あっても追従できるようにする
540 :
533 :2013/12/25(水) 05:14:33.74
>>534 今のシートの1行目に行を挿入し、会社名がA2:A11にする
【Sheet2】
最初のシートのA列(会社名)をA列にコピー
B1=1月 →M1(12月)までフィルコピー (4月→3月とかでもOK)
名前の定義:B1:M1=月度
このシートの各月列に売り上げを入力する
【Sheet3】
Sheet2のA列をA列に、1行目を1行目にコピー
B2=RANK(Sheet2!B2,Sheet2!B$2:B$11) →B11まで、及びM11までフィルコピー
【最初のシート】
B1="売上"、C1="順位"
D1=1 →M1までCtrlキーを押しながらフィルコピー
B2=VLOOKUP(A8,Sheet2!$A$2:$M$11,MATCH($A$1,Sheet2!$A$1:$M$1,FALSE),FALSE) →B11までフィルコピー
C2=RANK(B2,B$2:B$11) →C11までフィルコピー
D1=COUNTIF(Sheet3!$B2:$M2,D$1) →D11まで、及びM11までフィルコピー
A1 入力規則:リスト 元の値:=月度
D1:M1 表示形式:ユーザー定義:0"位"
D2:M11 表示形式:ユーザー定義:0;;;
これでA1にリストから月度を選択すれば、B列に選択した月の売り上げ、C列に順位が表示され
D列以降はその順位になった回数が表示されるはず
会社名が10個というのは例で実際には10個じゃないだろうから、その場合は数式の中の「11」は適宜書き換えること
また、Sheet2やSheet3は、シート名を「売り上げ」「ランキング」などとした方が解りやすいだろうが、
その場合も数式のシート名を書き換えること
542 :
536 :2013/12/25(水) 13:29:07.62
なんでSDIなんかにしたんだバカ者
すみません、ちょっと教えて下さい A1 A2 A3 というセルがあり、 A1には入力規則が設定されておりプルダウンから始業時刻を選択、 A2にも入力規則が設定されておりプルダウンから終業時刻を選択 A3にはA2-A1した時間が入ります A1の入力規則に「有給休暇」を追加し、 プルダウンから有給休暇を選択した場合は、 ・A2の文字を空白にする ・A3に値 8が入力される ・A1とA3を太字+字を赤くする という風にしたいのですが、アドバイスいただけないでしょうか? よろしくお願い致します。
>>544 vbaで
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then
If Target.Value = "有給休暇" Then
Cells(2, 1) = ""
Range("A3").Select
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
Selection.Font.Bold = True
Range("A1").Select
Selection.Font.Bold = True
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
End If
End If
End Sub
>>545 さん
早速ありがとうございます!
試してみますね
>>540 遅くなりすいません。
詳しくありがとうございます。
>>543 いや、SDI でいいんだけど、ちゃんとファイル開く度に新しいウィンドウ作ってくれよ...
それは設定で出来るし
2003使っている人どうしますか? 来年の春にサポートが打ち切られるみたいですが。
>>549 俺 (
>>548 ) へのレス?
設定でできるなら、マジで教えて。
かなり探したけど、見つけられんかった。
>>550 使い続ける人を探して安心したいのはわかるけど、
サポートの切れたものなんて使わずにさっさと買い換えよう
お金がないならoooのほうがマシ
>>553 2010アップグレード版の在庫が急に減ってきたから買っちゃったよ。
ほかの人はどうしてるのかと思って。
>>554 とっくに買ってるよ
あと2013の方が良かったんでない?
個人的にformulatext関数はちょっと欲しい。後はどうでもいいけどなー
>>551 ExcelではなくWindowsの関連付け設定の方なので
Excelの設定探しても見つかるわけない
因みにここはWindowsスレじゃないのであとはガンガレ
>>556 そっちは知ってるんだわ...、ガッカリ
なんでガッカリしてるの? もしかしてファイラーからではなく、Excelから開いた場合も 逐一新しいウィンドウで開きたいってことか? ならVBA使えば解決で、もっと簡単な話じゃんw
>>555 2013だとアップグレード版がなくてプラス5〜6千円だったから2010にした。
Officeは4.3→95→97→2003を使ってきたけどこれからExcel単体で行く。
>>559 ありゃーそうなのか、知らなかったスマン
値段考えるとExcel2010単体で十分っぽいね
あけましておめでとうございます。今年もよろしくお願いします。
=TEXT(TODAY(),"ggge")&"年も"&CHAR(10)&"よろしくお願いします"
数式で改行を入れても、そのセルの □ 折り返して全体を表示する を有効しないと無駄無意味だぞ デフォでは無効なんだからな そして、どうせ数式だけじゃ改行が有効にならないなら =TEXT(TODAY(),"ggge""年も、よろしくお願いします""") とした方が無駄が無くてスッキリする
=CHAR(13920)&CHAR(12908)&CHAR(16183)&CHAR(18223) =CHAR(19292)&CHAR(18223)&CHAR(9314)&CHAR(9289)&CHAR(9254)&CHAR(9278) =CHAR(9320)&CHAR(9325)&CHAR(9271)&CHAR(9263)&CHAR(9258)&CHAR(13418)&CHAR(9252)&CHAR(9252)&CHAR(9279)&CHAR(9271)&CHAR(9310)&CHAR(9273)
質問させていただきます 【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A(800円) りんご300 みかん300 ぶどう300 B(400円) りんご1000 C(700円) りんご100 みかん1000 ぶどう100 これら3商品を使って りんご3000 みかん4000 ぶどう2000 を最小金額で揃える、という計算式を作りたいと思っています これは単純な計算式ではなくExcelのマクロなどを使わないと難しいでしょうか? (これから出かけてしまうので反応は2時間ほどあとになってしまいます)
566 :
名無しさん@そうだ選挙にいこう :2014/01/01(水) 12:18:01.12
ファイルを開いたときに あるセルにその日の「日日」をいれるにはどうすればいいですか? そのファイルは後日も使うので関数「=TODAY()」とするのはダメです。 なぜなら後日に開いたとき値が変わるからです。 *あと関係ないですが「ひにち」を変換させると「日日」と出てきたんですがこれは正しい漢字ですか?
567 :
566 :2014/01/01(水) 12:19:08.87
× ファイルを開いたときに ○ ファイルを新規作成したときに
569 :
名無しさん@そうだ選挙にいこう :2014/01/01(水) 13:16:26.28
>>568 じゃ例えば高崎市にある高崎高校はどうなるの?「高高」とは絶対言わないのかな?
>>569 「普通は読みにくい」としか言ってないが。
言語なんて常に変わるから何が正しいかなんて決まらない。
広辞苑が正しいという宗教に入ってるなら広辞苑を見ればいい。
業界によっては必ず「日日」と書かなければならない風習があるかもしれないのでその可能性を考慮するなら先輩に聞くべきだろう。
地元の学校なら多少読みにくくても意味が通じるから、意味が通じる呼び方があるのだろう。
もしかすると近くに「高崎東高校」があり、大して「西」や「西高」と呼ばれている可能性もある。
勝手にその地方で受け継がれた読み方で呼ばれているだろう。
「高高」と今君が言えばそう呼ばれることになる。質問の意図がよくわからない。
>>565 その条件なら、作業シートを複数使えば、
四則演算と条件判定程度の単純な計算でも結果は出せる
ちょいとやってみたら、Aが6個、Bが1個、Cが3個で7300円が最小金額っぽい
ソルバーは俺もよくわからん
マクロの方が柔軟性があって楽なので、俺はゴールシークで対応できなければ
ソルバーではなくマクロに行っちゃうので
>>566 蛇足かもしれないが、当日の日付は「Ctrl+;」のショートカットキーひとつでも入れられる
それを知ってる上で、ショートカットキーひとつの手間も省きたいって話なら
>>568 みたいにテンプレート作って全てのブックに1回しか使わないマクロを埋めるよりは
個人用マクロブックに「ブックの新規作成→任意のセルに日付入力」ってマクロを作った方がいいと思う
これなら作られた日付入りの個別のブックには、無駄なマクロが残らない
>>568 いきなりどうした?
>>568 は「日日」が間違いだとか絶対に使わないとか言ってるわけじゃないじゃん
単に「日にち」の方が良いだろうってだけの話なのに、なんで突っかかってるの?
因みに俺も同意見
「日日」の評価は「間違い」ではなく「読み食い」で、「日にち」の方が良いと思う
573 :
名無しさん@そうだ選挙にいこう :2014/01/01(水) 14:37:05.22
______ / 〇⊂⊃\ / \ / ヽ l::::::::: | ハゲまして |:::::::::: (●) (●) o| |::::::::::::::::: \___/ .0| おめでとうございます ヽ:::::::::::::::::::. \/ ノ
>>572 なんか変な仕様だよね
セル幅に収まらない場合の折り返し表示はオプション扱いでいいと思うけど
文字列に改行が含まれてる場合は、逐一オプションを有効にしなくても
含まれている改行通りに改行表示してくれればいいのにな
576 :
名無しさん@そうだ選挙にいこう :2014/01/01(水) 18:36:37.48
>>565 ちょっと理解できないんだが
りんご300の記述の意味はなんでしょう。
りんごが300円?という意味
Aが800円のセットとして、リンゴが300円、みかんが300円、ブドウが300円
だと意味が分からないんだけど。
それとも、
Aが800円のセットで、リンゴ、ミカン、ブドウがそれぞれ300個あるということ?
理解不足なもので教えて。
他の人が回答付けてるんだから 理解できないなら無理しなくていいんだよ 君に全ての質問に答える義務が課せられてるわけでもないんだし
>>577 答えるためだけじゃなくても分からないことがあったら知りたいじゃん。
考えて分かる類のことでも検索して分かるようなことでもなさそうだし、
書き込んだ人に聞くのが早道なんじゃないの?
>>578 ここはあなたが気になることを解決するためのスレじゃないからね
ごめんね
>>579 ここはあなたが仕切るスレじゃないの
ごめんね
▼━質問テンプレ (必ず使ってね) ━━━ 【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 ▼━━━━━━━━━━━━━━━━━ すみません、2点質問があります。長くなるので2レス失礼。 まず、マクロを組む際、指定する範囲の一部を他のセルから引っ張って指定するには どのように記述すれば良いのでしょうか? 具体的には「マクロのスタート地点:O列、指定したい行数が記入されているセル:同じ行のM列」という状態で ActiveCell.Offset(1, -5).Range("A1:A5").Select ※この時点でこのセルから(-1,4) Selection.ClearContents ActiveCell.Offset(0, -1).Range("A1:A5").Select Selection.Copy ActiveCell.Offset(0, 1).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(0, -1).Range("A1:A5").Select Application.CutCopyMode = False Selection.ClearContents ActiveCell.Offset(0, -1).Range("A1:A5").Select Selection.Copy ActiveCell.Offset(0, 1).Range("A1").Select Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ====以下コピーしてペースト、元のセルを消して次へ、を繰り返すので中略==== というマクロにおいて、Range("A1:A5")の範囲指定を 「今指定しているセルから(-1,4)進んだところにあるセルの数字だけ行数を指定する」 としたいのです。
582 :
581 :2014/01/02(木) 01:11:06.86
次に、出来ればマクロ内にボタンを埋め込むことでCtrl+Qを押さずにボタンクリックで
作業を終えることが出来るようにし、またそのひな形を作りたいのですが
どのようにボタンの座標を指定したら良いのかが分かりません。
実際のエクセル画面で表すと、以下のような感じです。
(上が具体的な表のイメージ、下が作りたいひな形で赤いセルの所にボタンを埋め込みたい)
ttp://fast-uploader.com/file/6944148183231/ 以上、長文ですみませんがどなたか分かる方、ご教授願います・・・
前半:「Resize」で調べていけない? 後半:シートにボタン作るのは普通は 図形を挿入して図形右クリック→マクロの登録 だけどそれとは違って? 出先だから携帯からリンク先見ず書いてる。もうちょいまてば他の人起きてきて ちゃんとしたレスくれると思う 夜中だからちょっと繋ぎになれば
>>581 根本的な部分で駄目出しなんだけど、
一列ずつ消してはコピーして、ってのを繰り返すのは
非常に回りくどいし無駄が多いのでそれを直すべきだと思う。
処理を繰り返す列数が分かってるなら
その列分まとめて範囲指定してコピーして
一列右にずらして貼り付ければそれですむ。
最後に一番左の列だけClearcontentsすれば完了。
範囲の指定にはResizeを使う
Resize(行数,列数)で指定するわけだけど
行数にどこかのセルの値を反映させたいなら
そのセルを指定するだけ。
今回の場合ならresize(selection.offset(-1,4).value,列数)みたいな感じ
まぁ、この行数自体、どこかのセルに書いておくよりも
その表の大きさをマクロで読み取って自動調整させた方が良いとは思うのだけれど。
>>582 のほうは「マクロにボタンを埋め込む」って書いてるけど
もしかして「ボタンにマクロを登録する」の間違いじゃなかろうか?
オートシェイプの四角形(別に四角じゃなくてもいいけど)を
どっかのセルに挿入して、それにマクロを登録すれば
その図形をクリックすることでマクロを実行させられる。
【1 OSの種類 】 Windows7 【2 Excelのバージョン】 Excel2007 【3 VBAが使えるか 】 いいえ 【4 VBAでの回答の可否】 否 検索(ctrl+F)で純粋に入力した文字列だけを検索する方法はありますか? 手持ちのCDの曲目リストをEXCELで作っていますが、 例えば「はる」で検索すると、目的の「はる**」みたいなのだけではなく、 「春**」とかも引っかかります。しかも引っかからない「春**」もあります。 *検索にふりがなの使用・不使用を選択できるか *同じ漢字なのにふりがなで引っかかるのと引っかからないのがあるのはなぜか 基本的にはふりがなで引っかからず、検索文字だけで検索したい。
587 :
585 :2014/01/02(木) 20:42:13.28
>>586 サンクス
曲名やアーティスト名は並べ替え用に別にふりがなを付けています。
EXCELのPHONETIC関数が糞なので三四郎でふりがなを付けながら入力していますが、
ひらがなでの検索で漢字に反応するのはEXCELで追加入力や修正したセルのようでした。
しかもEXCEL相互では値のみ貼り付けしてもふりがな情報もコピーされるようですね。
CSVで保存したのを同じセルに値のみ貼り付けしたら、ふりがな情報は消えました。
ただデータ量は数%減りましたが、CSVでは保存されないEXCELの書式・機能があるので
元データとの再現性に確認が必要かもしれません。
Excelの機能って一見便利だけど痒いところに手が届かないからな 凝ったことやりたければ、VBA使ったりデータをxmlに置いたりと そういう方向の勉強をした方がいい まぁ、やりたいことを実現するために勉強するのと 勉強するくらいなら不便があっても現状で良しとするか、 どちらが良いかは自分で判断して好きにすればいいけどね
>>587 そこまでするなら、vbaでふりがなを消す機能を覚えたほうが早いし応用が効くよ・・・
手持ちのCDの曲目リストなんて何に使うんだろう? 何か別のアプローチがあるんじゃないかとちょっと疑問に思った
591 :
581 :2014/01/03(金) 20:50:53.74
Excel2010で起動時に最近使用したファイルの画面を直接開くことは出来ませんか?
594 :
592 :2014/01/04(土) 10:41:48.87
>>593 アホ。
どうやって開くかを聞いておるのだ。
>>594 まあ、確かにそうだけど、アホとまで言われて教えてくれるかな?
596 :
592 :2014/01/04(土) 17:01:07.88
じゃ「バカ」
質問時に必至な要件(
>>1 参照)を端折って質問してるから
回答も端折られてるだけと気付けずに逆ギレしちゃってる哀れな子
なりすまししてるのはテンプレ馬鹿か・・・
どうしたの?
他人をアホバカ言ってる暇あったらさっさと答えてやれよな
>>600 君こそそんなこと言ってる暇があったら
答えてあげれば良いじゃない
俺は分らないから答えられないんだけどね
スレが過疎るわけだ・・・
>>600 アホバカ言ってるのは、答えてやる方ではなく、答えてもらう方
まぁ最初の2つは本人じゃないってことにしたいようだけど
604 :
名無しさん@そうだ選挙にいこう :2014/01/05(日) 08:52:13.77
わからなきゃ答えなきゃいいだけなのに回答者様は我慢出来ないからな
そりゃ回答する気があってここを見てるのに
>>1 に書かれてることすら守らずに横柄な態度取る質問者様が居たら
それこそ何様だよって話になるのは当然だけどね
VBA使わないと多分無理 逆に言えばVBA使えば出来る でもVBAでの回答の可否が書かれてないからね
>>606 ありがとう。
ジャンプリストで十分だわ。
610 :
592 :2014/01/05(日) 12:17:55.46
みんなそうはおっしゃいますがな、
もう一度
>>593 を見てみろや。
↓↓↓
593 名前:名無しさん@そうだ選挙にいこう[sage] 投稿日:2014/01/04(土) 10:39:42.15
>>592 出来ます
↑↑↑
質問はできるかどうかではなくやりかたを聞いてるのは自明だ。
それをこうこたえるのはひねくれた糞ガキ小学生レベル以下だ。
>>609 はい。
>>610 なるほど
一つ質問なのですが、そのことを掲示板で指摘することによって得られるものがあるんですか?
私は誰のためにも何のためにもならないと思うので、書き込む理由がないと思うんですが。
612 :
名無しさん@そうだ選挙にいこう :2014/01/05(日) 13:13:35.51
CSVファイルを開くとき 携帯番号のハイフン抜きの数字(09012345678)が 最初の0が消えて9012345678となって読み込まれます。 あれ、ウィザードが出てきてセルの書式みたいなのを各列ごとに設定できなかったっけ? なにも聞かればそのまま読み込まれたんですけど。 どうすれば文字列として読み込むようにできますか?
>>611 592の気分の問題だろ
言い負かされたままでいると脳みそが沸騰しちゃうんだよ
やりかた教えてと聞けば済む話なのに いつまでもぐちぐちと
>>614 なるほど、ありがとうございます。脳みそが沸騰すると大変ですものね。
沸点どのくらいかね
618 :
名無しさん@そうだ選挙にいこう :2014/01/05(日) 21:21:59.80
セッシ37度です。
ここはいつから人間の小ささを晒すためのスレになったんだ?
なぁに、次の相談者が来るまでのひまつぶしさw
ひつまぶしがたべたい
622 :
名無しさん@そうだ選挙にいこう :2014/01/07(火) 10:13:38.23
ちんすこうをどうぞ。
ちんすこうって結局たんなるクッキーだよね。 サーターアンダギーも要するにドーナツだし。 なんか沖縄ならではの特色って無いんかな?
▼━質問テンプレ (必ず使ってね) ━━━ 【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 VBAで式の中に他のセルの値を指定するにはどうすればいいのでしょうか? 現在のセルから(0,-2)進んだところにある(つまり二つ左のセル)セルの値を指定したいのです。 具体的には ActiveCell.Offset(0, -1).Range("A1:A12").Select Selection.Copy という式のRange("A1:A12")の A12 の部分を現在のセルから二つ左のセルの値に置き換えたいのですが、 どのように記述すれば良いのでしょうか?
>>625 ActiveCell.Offset(0, -2).Select
Selection.Copy
>>625 たとえば現在のセルがC1だった場合、Offset(0, -1)はB1で二つ左はA1になるからRange("A1:B1")を指定したいってことでしょ
つまりActivecell.Offset(0, -2).Reseze(1, 2)ってこと
>>628 それも違うんじゃないか?
そもそも
>>625 が書いてる
ActiveCell.Offset(0, -1).Range("A1:A12").Select
ってのをResizeを使って書き直すと
ActiveCell.Offset(0, -1).Resize(12,1).Select
になる
これはつまり、アクティブセルから一個左のセルを起点として、
そこから「縦は下方向に12行、横は右方向に1列」の範囲を選択すると言う意味なので
それの"A1:A12"の部分を
"A1:A「アクティブセルの2個左のセルに入ってる値」"にしたいっていう質問だと思うよ。
答えはもう
>>584 で書いてあるんだけどね。
あぁ、
>>584 だとSellectionで書いてるけど
そこはActiveCellに書き直さないといかんね
ActiveCell.Offset(,-1).Resize(ActiveCell.Offset(,-2).Value).Select
(Offset内の要素は省略すると0、Resize内の要素は省略すると1になる。
省略せずに書くと
ActiveCell.Offset(0,-1).Resize(ActiveCell.Offset(0,-2).Value,1).Select
になる)
現状○○で 最終的に○○したい これはもうちょっと具体的に示してほしいな 例題でいい、というかむしろ例題がないと厳しい
632 :
名無しさん@そうだ選挙にいこう :2014/01/07(火) 22:31:21.15
何言ってんのこのひと
多分質問者にもっと明確にやりたいことを書けといってるんだと思う。 ただし、そんなことが出来るヤツは 質問などしないでも自力で解決できる気がする。
そうなんだよね 自分のやりたいことを、的確な表現で解りやすく伝える能力がある奴は Excelみたいに、いくらでも情報が転がってるソフトの使い方くらい自分で調べられる そして、自分が思い描いてることは、何も言わずとも相手も把握している前提で 話し始めるような頭の弱い子だけが、こういうところに質問に来る
635 :
625 :2014/01/07(火) 22:56:29.27
直接書き込めないので代行してくださった方、ありがとうございます。
自分であれこれやってみても分からなかったので再度質問失礼します。
質問の詳細なのですが、以下のような状態でF3のセルを選択し、マクロの途中でD3のセルを参照したいのです。
ttp://fast-uploader.com/file/6944656788740/ 具体的にどの様にマクロを書けば良いのでしょうか・・・
Sub Macro3()
' Macro3 Macro
ActiveCell.Offset(2, -1).Range("A1:A12").Select
Selection.Copy
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(0, -1).Range("A1:A12").Select
Application.CutCopyMode = False
Selection.ClearContents
ActiveCell.Offset(-2, 1).Range("A1").Select
End Sub
それと追加で質問がありまして、
>>582 の方をヒントにマクロをショートカット登録しようと考えたのですが、誤爆防止で
「現在のセルの背景色が黄色か→もし黄色でないのならば何もせずそこでEnd Subに飛ぶ、黄色ならばマクロ実行」
という挙動を付ける事は可能でしょうか?
可能ならばどのように記述すればよいのかも教えて頂ければ幸いです。
636 :
名無しさん@そうだ選挙にいこう :2014/01/08(水) 02:44:26.83
>>635 >>629-630 に書いた回答では不足ですか?
あれでまだ
Sub Test()
If ActiveCell.Interior.Color = RGB(255, 255, 0) Then
’ここに処理を書く
End If
End Sub
637 :
636 :2014/01/08(水) 02:47:55.88
すまん、書いてる途中で送信しちまった
>>635 >>629-630 に書いた回答では不足ですか?
あれでまだ分からないならどこが分からないか教えてください
で、後半の黄色の判定ですが下記のようにやります。
ただし、ここでいう黄色とはRGB(255,255,0)であることを前提にしてます。
Sub Test()
If ActiveCell.Interior.Color = RGB(255, 255, 0) Then
’ここに処理を書く
End If
End Sub
638 :
636 :2014/01/08(水) 02:54:16.19
あと、ここまで回答しといてなんだけど、 今回のようなケースでActiveCellを多用するのはあんまりお勧めできない。 SelectするたびにActiveCellが変わってなんかややこしいでしょ? 何処か基準点("F3"とか)を決めておいて、そこからのOffsetだけで処理するとか、 あるいはCells(行,列)の形式で数値で指定するとかした方が コードも見やすいし処理の流れも分かりやすくなると思うよ。
639 :
625 :2014/01/08(水) 07:27:48.22
皆さん&レス代行してくれた方ありがとうございました! Sub Macro4() If ActiveCell.Interior.Color = RGB(255, 255, 0) Then Dim i As Long i = ActiveCell.Offset(0, -2).Value ActiveCell.Offset(2, -1).Resize(i, 1).Select Selection.Copy ActiveCell.Offset(0, 1).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(0, -1).Resize(i, 1).Select Application.CutCopyMode = False Selection.ClearContents ActiveCell.Offset(-2, 1).Range("A1").Select End If End Sub とし、無事目的の挙動を達成することが出来ました。感謝です。
これは酷いw
>【1 OSの種類 .】 Windows** >【2 Excelのバージョン 】 Excel2010 >【3 VBAが使えるか .】 いいえ >【4 VBAでの回答の可否】 他に手段が無ければ可 ある会合への参加者の氏名等を会合毎に別々のブックに保存しています。 複数の会合に出席してる人をピックアップして、出席回数•会合の種類を把握出来るように抽出したいのですがいい方法はありませんでしょうか? COUNT関数等を使えばいいのかと考えましたが、特定のキーワードを設定したりせずに、重複した氏名という条件で抽出する方法がわかりませんでした。
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 体温の入力をしているのですが、例えば「36.5」と入力する場合 ドットを打ちたくないので、「365」と入力して「36.5」と表示させることは可能でしょうか?
>>641 > 特定のキーワードを設定したりせずに、重複した氏名という条件で抽出する方法
段階的に考えないから難しくなる
・まずは重複するしないに関係なく、全ての氏名を列挙
・次に列挙した氏名に対してCOUNT関数を掛ける
・結果が2以上のものを抽出
・抽出された氏名が含まれる会合名を列挙
そうやって段階的に考えれば、1つ1つは難しい事なんて無い
但し、VBA無しでも出来るけど、ものすごく手間が掛かる
関数は1つの式で1つの結果を返すものだから、返したい値の個数が複数&不定となると
そういう関数では出しにくい結果を無理矢理出すだけで面倒が増えるからね
VBA以外の手段がある以上、どんなに面倒でもVBA使いたくないのか
そこまで拘らないのかでやり方が変わってくる
あとはよく言われることだが、データとインターフェイスは別にするだけでかなり簡素化できる
今は「会合毎の一覧」というIFを持ったデータ故に面倒になっているが
会合名 氏名
AAA 佐藤
AAA 田中
AAA 鈴木
BBB 渡辺
BBB 田中
のように会合名のフィールを作ってデータを一元化し、会合毎の一覧が欲しい場合は
選択した会合に一致する情報のみを表示させるIFを作れば
「会合毎の一覧」という機能も損なわずに
>>641 をより簡単に実現できるようになる
一元化してはデータが肥大化しすぎるなら、データベース化も見当した方がいい
だいたい、
>>641 みたいなオーソドックスなことをやろうとして行き詰まってる場合は
元のデータの作り方からして不適切な場合がほとんどだからね
>>642 表示だけなら、セルの書式設定の表示形式のユーザー定義で「0"."0」とすればOK
VBA使わないと、「365」と入力したセルで直接「36.5」と書き換えることは出来ないが
表示形式でも見た目は誤魔化せるし、計算やグラフで使う場合も÷10すれば良いだけだから問題ないでしょ
>>642 無理
マクロ使うか、入力用の列用意して目的のセルで =(入力セル)/10 するくらいしか思いつかん
646 :
641 :2014/01/08(水) 11:37:20.69
>>643 レスありがとうございます。
一つの会合毎に数百人単位、総数では千人近いデータ量になっているので、全ての氏名を列挙といったやり方は難しそうです。
データの作り方という点では、何年にも渡って集められたデータということもあって書式も不揃いで頭が痛い所です。
VBAで簡便に済むならなんとか調べつつ取り入れたいと考えています
>>646 VBAでやるにしてもデータ構造が不定なら無理がある
まずはデータ構造を統一させてブックを統合すればいいんじゃないかな
そうすればピボットテーブルで解決できそうな気がする
>>646 会合毎に数百(500〜600)なのに、総数で千近い(900〜999)ってことは
参加する人の大半は固定ってことだね
それと、VBA使うにしても、仮想的にデータを一元化した上で処理し結果を吐き出すことになるから
一元化したところで処理せずに吐き出せば、一元化されたデータベースが完成するので
一元化は
>>641 の結果を出すよりは簡単な作業だ
しかし書式が不揃いとなると、現物のブックを全て、少なくとも書式の全種類分は
うpしてもらわないとコードは書けないから、
> 【3 VBAが使えるか .】 いいえ
だとVBAで解決するのも困難かも知れない
どうせ個人情報とかでうpは出来ないでしょ?
全てのブックから、書式を残したまま個人情報だけ消してうpするってならなんとかなるかもだが
649 :
名無しさん@そうだ選挙にいこう :2014/01/08(水) 12:14:46.67
Excelは達人レベルになったけど グラフ機能って使ったことないんだ。 子供向けじゃなく大人向けの解説サイトか本はありませんか?
あるよ
>>649 そもそも、Excelのグラフ機能そのものが、
表計算ソフトにオマケで付いてる子供だましみたいなものなので
凝ったグラフ作りたい奴はExcelなんか使わない
だからExcelのグラフ機能を掘り下げた話ってのはほとんど無いんだよ
一通り解説してるサイトならいくらでもあるが、それを網羅しても
作れるグラフのレベルはたかが知れてるので、見栄えの良いグラフや凝ったグラフ作りたいなら、
そっち方面に優れたソフトを使うべし
まぁ、ここではスレ違いになっちゃうので、どのソフトが良いか、どう使うかは自分で調べとくれ
回答条件のVBA否ってのは職場の方針で使っちゃいけないのか、 未経験の物に手を出したくないだけなのか、区別した方がいいと思うの 23歳OL
>>652 では前者の場合と後者の場合の両方の回答をお願いします
∩___∩
| ノ⌒ ⌒ヽ はじめますて♪ このスレは盛り上がってるね。
/ ≦゚≧,::,≦゚≧
| ( _●_) ミ ボクちゃんも
>>649 みたいなExcelの達人になりたいです。
彡、 |∪| ノ
⊂⌒ヽ ./ ヽノ ヽ /⌒つ ところで平日の昼間なんだけど、おまえらは無職なのかな?
\ ヽ / ヽ /
\_,,ノ |、_ノ
>>654 ねぇ、桃白白さん
23歳OLの受けがイマイチだからって早くも新キャラ投入なの?
ごめん、そのスレすら知らんかった このスレでAA使うやつなんてタオパイぐらいしか知らなかったんだよ ただ、書き込みを見た限りではやつのほうがセンスあるな
まあスキル低い割に自己顕示欲が強く自信過剰という点では似たようなもんでしょ どちらも初心者にやっと毛が生えてきた程度なのに、自分では中級者以上のつもりみたいだし
∩___∩
| ノ⌒ ⌒ヽ
/ ≦゚≧,::,≦゚≧
>>657-658 | ( _●_) ミ せんせい方の作品を見せてください。 SNSやブログやってないかな?
彡、 |∪| ノ
⊂⌒ヽ ./ ヽノ ヽ /⌒つ 画像だけでもいいし、
\ ヽ / ヽ / もしExcelファイルをUPしてくださるなら、Excel2003で読める型に変換してお願いします。
\_,,ノ |、_ノ
いや、仕事で作ってるヤツは外部に出せないから無理
とりあえず
>>629 とか
>>636 とかは俺
っつーか、タオパイパイはエクセルのスキルじゃなくて
お笑いのセンスって言うかAAやせりふの選択が秀逸なんだよ
彼はラジオのハガキ職人とかやったらかなりいい線いってると思う。
>>661 多分
>>639 はデータを一列ずつずらしていく処理がしたいんだろうね。
やり方が回りくどいけど。
でもそれは俺のせいじゃないし俺もどうでもいいと思う。
別人を比べた件については
>>655 の時点ではタオパイでも書きそうなレスだったけど
>>656 で違うとは分かった。
ただ、「ボクを知らないなんて」とか言っちゃうような
自己顕示欲の強い人みたいだったんで
このスレには君より面白いコテが既に居るよって指摘する意味で
>>657 を書いた。
どうも論点が云々っていうか会話が噛み合ってないみたいだね。
664 :
642 :2014/01/09(木) 15:11:32.83
>>644-645 ありがとうございました。
ユーザー定義で「0"."0」を使うことにしました。
665 :
名無しさん@そうだ選挙にいこう :2014/01/09(木) 15:36:30.53
>>664 こっちのユーザ定義のほうが優れているよ。 → 「(V)o¥o(V)」
>>665 覚えたてのバルタンを使ってみたかったの?
つまんないからやめなさいね
>>666 いいたい気持ちはわかります。でもゴミクズはスルーしましょう。あなたの価値を下げます。
>>667 お前に価値を判断されるいわれはない
失せろ
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 グラフの近似式の計数をセルに出して利用したいんですが LINEST関数を使って出した値と、グラフに近似曲線出して表示させた式の計数が違います データの指定範囲は同じなのになぜなんでしょうか 具体的には近似曲線の式には「y = 3.9076E-08x^2 - 1.2145E-05x + 1.3431E+00」と出るのに LINESTで出した値は「3.90764E-06 -0.000120667 1.343044074」になります
>>669 仕様に対して何故なのかって話は製作者(マイクロソフト)に聞け
揃えたいって話なら、元データをLINEST関数に掛けてそれをグラフソースにしろ
空の列を挿入するとカーソルのあるセルの左の列の書式がコピーされますが、 右の列をコピーして挿入することはできませんか 要は、表の左端の列に空の列を追加したい 仕方ないので、既に書かれている列をコピーして挿入して内容を消して、 ということをしているけど、何か上手いやり方がある筈
>>671 2007だか2010からは挿入した列のどっちがわの書式をコピーするか選べるけど。
>>671 Shift押しながらだと列をD&Dで移動(入れ替え)が出来るので
コピーしたい書式を持つ列の右に列を挿入して、それをD&Dで移動する方が簡単かな
その作業を頻繁に行うなら、VBAで自動化すれば一発で出来るようになるし
そんなに頻繁にはやらないなら、上記のD&Dで十分でしょ
>>674 この操作自体初めて知った
こういう編集はやっぱりマウスの方が向いてるな
それでも罫線とかがあるとやっぱり上手く行かないんだけど
っていうか罫線あったら右端でも無理だけど
罫線使いたがる奴とセル結合したがる奴をどうにかしたい
>>670 LINESTで指定したXの値が0.1刻みだったんですが、
1刻みにしたら近似曲線と同じになりました
A列にランダムに値(文字列)が入っている状態で、 B列に「自セルより上にある最も近いAの値」を入れる式を教えて下さい。 例えば↓のB列を式で入力したいです。 A列 B列 1 あ あ 2 あ 3 い い 4 う う 5 う 6 う 7 え え VBAを使えばできるのはわかっているので、式でお願いします。
別になんでもいいんじゃないか? B1に=A1 B2に=IF(A2="",B1,A2) とかで
679 :
名無しさん@そうだ選挙にいこう :2014/01/11(土) 18:12:16.97
B2以降に =IF(A2="",B1,A2) B1だけ =A1
680 :
名無しさん@そうだ選挙にいこう :2014/01/11(土) 21:22:07.20
ちょっとお聞きしたいのですが、 large関数で、マイナスの数字は順序にカウントしない方法はないでしょうか すいませんがよろしくお願いします。
681 :
680 :2014/01/11(土) 21:40:06.99
すいません自己解決しました配列数式というやつでいけましたありがとうございました
>>678-679 そうですね。。。すみません、質問が悪かったです。
↓でC列を自動入力する場合の式はありますか?
A列B列の文字列は不定です。
A列 B列 C列
1 あ か あか
2 き あき
3 い く いく
4 く いく
5 け いけ
6 け いこ
>>682 >>678-679 とほぼ同じだけど
C1:=A1&B1
C2以降:=IF(A2="",LEFT(C1,1),A2)&B2
LEFT()がキモければ作業列作る
>>684 その方法だと、A列の値が決まったサイズでないとだめですよね?
作業列作らないでやる方法はないでしょうか?
>>685 作業列作らなくても出来るけど、作ったほうがはるかに簡単で楽
>>685 C2以降を =IF(A2="",LEFT(C1,LEN(C1)-LEN(B1)),A2)&B2
で、次はどんな仕様を後出ししますか?
688 :
名無しさん@そうだ選挙にいこう :2014/01/12(日) 22:07:06.31
▼━質問テンプレ (必ず使ってね) ━━━ 【1 OSの種類 .】 Windows7・XP 【2 Excelのバージョン 】 Excel2010・2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 凄く簡単な事だと思うのですが調べてみても色々やってもうまくいきませんので教えていただきたいです。 請求書のようなもので、セルに日付で「2014/1/6」と入れると セルに入れた日付の1カ月前の「月度」と「年度」をそれぞれ別に出したいのです 請求書発行日 「セル」 「セルの1か月前の年度」年 「セルの1か月前の月度」月分 といった感じです。1月だと12月が年度が変わってしまうのでどうもうまくいきません 非常に簡単な事の気がするんですが思いつきません。よろしくお願いします
>>688 ○度
って締め日によるから一概に言えない
・年度の締め月
・締め日
・2014/1/6だと何年度の何月度と出したいのか
690 :
名無しさん@そうだ選挙にいこう :2014/01/12(日) 22:22:08.06
>>689 すいません
請求書は大抵前月度のを1カ月遅れで請求書発行という感じです
つまり2013年12月は2013年11月分の請求
2014年1月は2013年12月分の請求
全てセルで打ち込んだ月度の前月の年度、月度の数字を取得したいんです
691 :
名無しさん@そうだ選挙にいこう :2014/01/12(日) 22:24:40.61
・得意先によって締日が異なることはないか? (会計上の残高は異なってくるはず) ・年度とは4〜翌年3月までのことか?
692 :
名無しさん@そうだ選挙にいこう :2014/01/12(日) 22:32:08.13
>>691 〆日等は関係なく単なる何年何月ってだけです
決算書類ではありませんので単純にセルに打ち込んだ年月日の1か月前の
何年何月がそれぞれ出せればOKです
>>690 A1に日付があるとして
edateでシリアル値が取得できる
=EDATE(A1,-1)
年
=YEAR(EDATE(A1,-1))
月
=month(EDATE(A1,-1))
>>693 が早かったw
オラは
日付を入れたセルがa1なら、
年=year(date(year(a1),month(a1),1)-1)
月=month(date(year(a1),month(a1),1)-1)
695 :
名無しさん@そうだ選挙にいこう :2014/01/12(日) 23:09:32.54
>>693 ありがとうございます
年度の方で2013が返ってきました
さらにこれを平成24年と表示させたい場合はどうすればいいでしょうか?
先月の末日=A1-DAY(A1) ゆえに 年=YEAR(A1-DAY(A1)) 月=MONTH(A1-DAY(A1))
>>695 =EDATE(A1,-1)
で書式設定をggge
699 :
名無しさん@そうだ選挙にいこう :2014/01/12(日) 23:30:28.91
>>697 確かに仰るとおりですね。すいませんでした
ファイルに年度、月度、と有ったのでそれに引っ張られてしまいましたm(_ _)m
以後気をつけます
書かれている方法ですが
シリアル値が返ってきてるので書式でeやgeeeとすると明治になっちゃうんです
700 :
名無しさん@そうだ選挙にいこう :2014/01/12(日) 23:33:42.78
>>698 ありがとうございます
=YEAR(EDATE(A1,-1))
の所を平成で表示したいのでそれではダメでした
>>699 訂正
geee→ggge
702 :
名無しさん@そうだ選挙にいこう :2014/01/12(日) 23:38:49.04
>>698 すいません
いけました。完璧です
みなさん。ありがとうございましたm(_ _)m
>>686-687 C1=lookup(1, 0/(A$1:A1<>""), A$1:A1)&B1
おまえら、こっち教えてやれよw
何故今頃になって、しかも劣化版の方を教えろと?
最近ほんと考えるのがめんどくさくなってきて脳
706 :
名無しさん@そうだ選挙にいこう :2014/01/13(月) 18:07:20.58
あ=1 い=2 う=3 と条件を設定し、 あ+い+う=6みたいな計算をする方法ってありますか? くわえてたとえば「あ」の部分のセルは赤色、「い」の部分は青のように 色をつけたい場合はどのようにすればいいでしょうか?
>>706 何を言っているのか意味がわからん
具体的に書いてくれ
708 :
名無しさん@そうだ選挙にいこう :2014/01/13(月) 18:14:05.94
すいませんテンプレ忘れてました 窓8の2013、VBAは使えませんので一般の回答でお願いします
変数ってことじゃないの
710 :
名無しさん@そうだ選挙にいこう :2014/01/13(月) 18:37:06.40
えっと、ゲームのステータスを数値に換算した表を作りたいのですが、 たとえば 攻撃力:A 防御力:B 素早さ:C などのステータスがあるキャラクターがたくさんいたとして、それらのステータスを A=50点、B=40点、C=30点などに換算したいという意味です。 キャラクター一人一人いちいち計算するより、A=50点などの条件を設定できれば、 A+B+C=110点、A+A+C=120点と一度に計算できると思いますので。 そして色つけに関しても、Aと表記されている部分をいちいち色付けするより A=赤色と設定できれば一度に色を変えられるのではないかという意味です。 もしまだ把握できない部分があれば逐一返答します。お願いします
VLOOKUPと条件付き書式って知ってる?
おそらく、こういうことにExcel使う奴はリアル小学生か、頭が小学生並な奴だろ それを踏まえて答えてやらにゃ理解できんだろうよ
/j /__/ ‘, // ヽ ', 、 // ‘ /イ ', l ’ …わかった この話はやめよう iヘヘ, l | ’ | nヘヘ _ | | l ハイ!! やめやめ | l_| | | ゝ ̄`ヽ | |〈 ̄ノ ゝソノノ `ー‐' l ! ¨/ n/7./7 ∧ j/ / iヽiヽn |! |///7/:::ゝ r===オ | ! | |/~7 i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ.. nl l .||/ | | | | l {':j`i::::::::::::::::`ーr ' ||ー---{ | '" ̄ ̄iノ .l::::::::::::::::::::::∧ | ゝ ', , 一 r‐‐l γ /、::::::::::::::::::::::::〉ー= ___ ヘ ヽ } / o |!:::::} / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ ノ / o ノ:::::∧ /ヽ o ヽ::::::::| o i::::::::ヽ、 / / / ノ::::::/ /::::::::ヽ o ヽ:::| o {::::::::::::::Υ /
hhh:mm みたいな形式で時間の長さを入力することはできませんか
違うかもしれんけど [h]:mm
意味は判らないけど、表示と計算はうまく行きます ただ、修正ができなくなる 1900/1/6とか意味不明の文字列を修正させられる
>>718 それは仕様
Excelでは、時間も時刻(日時)も、同じシリアル値という概念で扱われてるので
100時間という値は、1900/1/0(1899/12/31)から100時間(4日と4時間)後の
1900/1/4 4:00:00として扱われるからね
修正ではなく、上書き入力なら問題ないし、どうしても一部修正がしたいなら
入力するセルの表示形式を「文字列」にして、計算時に
=A1*2
を
=VALUE(A1)*2
のように修正してやれば良い
文字列ならシリアル値としての扱いは関係なくなるし、文字列として入力しても
計算時に数値(時間値)化してやれば、問題なく計算できる
720 :
名無しさん@そうだ選挙にいこう :2014/01/14(火) 10:39:05.21
シリアル値はExcelだけの仕様ですか? 他のデータベースシステムでは日付はどのように管理してますか?
>>720 自分で決める
俺はint型のunixtime
日ごとの売上折れ線グラフを作りたいですが 定休日だけ反映しないようにできますか? 0や未入力だと見栄えが悪いので、、
>>722 データ構造がわからないのでなんとも言えませんができます
>>723 ありがとうございます。
よくわからないのですがカレンダーと紐付けています。
日付別に1レコード(行)となっているなら、定休日をデータから外せばいいのでは
その日の数値は=n()だか=na()dakaにすればグラフに反映されなかったような
728 :
名無しさん@そうだ選挙にいこう :2014/01/16(木) 02:36:00.10
むかしこのスレにいた、かなりExcelやVBAに詳しい固定の名前の人はどこ行った? ちょっと性格は変だけどスキルはあったし丁寧に回答してた人。
∩___∩
| ノ⌒ ⌒ヽ
/ ≦゚≧,::,≦゚≧
>>728 | ( _●_) ミ そいつがどんな奴なのか知らんが、
彡、 |∪| ノ オマイラが難癖つけて追い出したんじゃないの?
⊂⌒ヽ ./ ヽノ ヽ /⌒つ
\ ヽ / ヽ / 「性格は変」なんて言われたら、もう帰って来ないワナ。
\_,,ノ |、_ノ
性格は変な上にスキルも低く、そのくせ出しゃばりで 自己顕示欲とプライドばかり実力以上に高い、むっつり某とかいう奴こそ もう帰って来なくていいのにな
いきなり2つもNGあぼ〜ん?
すみませんエクセルのグラフで教えて欲しいのですが H23.4 H23.5 H23.6 ・・・ H25.3 A 3 4 5 ・・・ 10 B 2 3 4 ・・・ 9 C 3 2 6 ・・・ 13 D 2 2 1 ・・・ 1 横線が4月〜3月でA〜Dのグラフを年ごとに4本ずつ入れるにはどうしたら良いでしょうか?
>>734 複乳は
> スキルはあったし
に該当しないやん
かなり古いけど、ゴッホとかhogeとかじゃね?
あっエクセル2010です
>>738 ありがとうございます。
画像の状態で「H23.4.1」と重なる様に「H24.4.1」や、「H25.4.1」が来てほしいんです。
(折れ線グラフで)
ひょっとしてゴチャゴチャしすぎて逆に見にくいとかありますか?
>>738 質問に来る超初心者と比べればスキルあっただろうけど
それはコテ名乗ってないその他大勢の名無し回答者も同じ事なので
質問者と比べてではなく、名無し回答者達と比べて上を行ってないと
回答者として特にスキルあったとは言えないでしょ
まぁ確かにどうでもいいけどね
>>739 やめたほうがいいとは思う
横に並べるか、年度ごとに分けたほうがいいかと
>>738 740 741
ありがとうございました。
テンプレ見てませんでしたorz
とりあえずごちゃごちゃしそうなので別々に出すようにします。
743 :
名無しさん@そうだ選挙にいこう :2014/01/16(木) 13:18:38.69
744 :
名無しさん@そうだ選挙にいこう :2014/01/16(木) 21:00:30.45
すみません、シート別のリンクについて教えてください。 【1 OSの種類 .】 WindowsVISTA 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 現在、注文リストと配達リストをシート別に作って使用しています。 この注文リスト(注文順に入力)と配達リスト(配達日時別に入力)をリンクさせ、 2重での入力の手間を省きたいと考えているのですが 順番に関数を入れても注文順に配達するわけではないため意味がありません。 このような場合よい対処法などありますでしょうか。 下手な説明で申し訳ございません。 よろしくお願いいたします。
>>744 単に注文日時と配達日時の両方のデータ(列)を持つリストを作って
注文日時でソートすれば注文リスト、
配達日時でソートすれば配達リスト、って扱いではダメなの?
Excel2003以降なら、オートフィルタに並べ替え機能があるので
範囲選択して、キー設定して、ってことせずに、クリック1つで並べ替え出来るから
シートをクリック1つで切り替えるのと手間は変わらないけど
どうしても別シートにしたいなら
RANKやSMALLなどの順列関数と、INDEXなどの参照関数の組合せでいけるけど
配達日時に重複がある(例えば1/17 12時配達のものが2件ある)とかだと、
一工夫必要で面倒になる
>>744 どういう流れなのか、もっと詳しく具体的に
747 :
744 :2014/01/17(金) 10:57:50.46
>>745 >>746 すみません、ありがとうございます。
ソートではダメのようで、シートを別に使用しています。
そもそもの流れなのですが、このリストは社内で営業が使用しています。
営業が注文を受けたら、注文リストに氏名・住所や配達希望日の情報を載せています。
配達リストはカレンダーのような様式になっております。
以下のような形で、日時ごとに入力しています。
==================
1月17日 10時 ○○様 支払方法
11時
12時 ○○様 支払方法
13時
==================
そして新たに注文を受けると、配達希望日の空いている時間をリストで確認して配達リストに入力します。
その配達リストを確認して当日配達担当は動くというのが一連の流れです。
この空いてる時間を確認する作業のため、配達リストの様式はこのままが良いらしく、
しかし二度手間は大変とのことでなんとかならないかと言われまして。
良い入力方法がありましたら教えていただきたいです。
よろしくお願いいたします。
>>747 配達リストの日時は予め入力されてて
各日時に該当するものがあれば、それを返す式があればいいのかな?
だったらVLOOKUPや、INDEXとMATCHで行けるでしょ
それで解らないなら、ブックうpしてくれないと具体的な式は書けないよ
別に実際の注文状況とか顧客情報は消して、10件くらいのダミーデータを乗せたものでいいからさ
749 :
名無しさん@そうだ選挙にいこう :2014/01/17(金) 11:37:09.66
並べ替えだけで済むじゃん ・シート全体選択、日時優先並べ替え のマクロボタンでも作っとけばいい 注文入力は毎回一番下の行に追加するだけだろ 入力したら並べ替えで終わり
意見としては正しいと思うけど、回答としては間違いだな 質問者にも都合があるんだから、質問者の希望とは違う方法でも 案として1度提案するくらいならいいが、並べ替えの話は既に出た上で 質問者がそれじゃダメだと言ってるのに、自分のやり方をゴリ推しする奴は、 無理に回答しなくていいと思う ちゃんとテンプレ使ってVBAは否って書いてるのに、マクロ云々言ってるのも的外れだし
751 :
名無しさん@そうだ選挙にいこう :2014/01/17(金) 11:55:34.58
という本人も回答無しの的外れ
?
753 :
744 :2014/01/17(金) 19:01:50.91
いろいろありがとうございます。 とても勉強になりました。 教えていただいた関数と並べ替えで新しいシートを作ってみたので、営業に確認してみます。 本当にありがとうございます。 また来るかもしれないのですが、その時はよろしくお願いいたします。 ありがとうございました!
お、おう。がんばれよ
755 :
名無しさん@そうだ選挙にいこう :2014/01/17(金) 21:43:17.48
こんな匿名掲示板でまで僕は悪くなくて営業のせいです感出すのなんなんだろうな
普通に営業から言われてるんだろ あり得る話だし、そこ別に突っ込むところじゃないし
【1 OSの種類 .】 Windows8.1 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 使用機器 surface pro2 do 他の仕事 cells(行,1)=ミリ秒時間 行=行+1 loop 上記のコード、Excel 2003では少なくとも1msで3行は進むのですが Excel 2013では早くて1行遅いときは10ms以上かかります Excel 2013のVBAはこんなものでしょうか もちろん、アクセラレータはoffにしています
テンプレさえ埋めておけば
> 使用機器 surface pro2
こういうアピールは要らないから、その代わりに
> 他の仕事
のところを具体的に書けよ
>>2 にも書いてあるだろ
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
とな
>>757 2007だか2010で内部的に結構変わったらしい
基本早くなるはずだけど遅くなることもあると思う
失礼 Private Declare Function QueryPerformanceCounter Lib "kernel32" (c As Currency) As Boolean Private Declare Function QueryPerformanceFrequency Lib "kernel32" (f As Currency) As Boolean Dim i As Integer, j As Integer Application.Calculation = xlCalculationManual For i = 2 To 1000 For j = 0 To 200 Next j QueryPerformanceCounter cnt QueryPerformanceFrequency freq Cells(i, 1) = cnt / freq '精度1msカウンター DoEvents Next i Application.Calculation = xlCalculationAutomatic 以上
>>759 2010では機材は違いますが問題なく動きました
それから
For i = 2 To 1000 --> For i = 2 To 10000に訂正
Application.ScreenUpdating = False と Application.ScreenUpdating = True も入れてみたらどう?
確かに、Application.Calculationの後ろにApplication.ScreenUpdatingを入れるとよくなります ただ Cells(i, 1) = cnt / freq で画面表示が更新されないってことですよね
764 :
名無しさん@そうだ選挙にいこう :2014/01/18(土) 17:56:35.08
Application.Calculationって Excel本体の設定ではどこから設定変更できるの?
確か、ツール-->オプション-->計算方法
>>763 ツールバー上で進捗を表示させると画面表示の更新をfalseにしても動きますよ
そんな方法もあるんですね、今度勉強してみます ただ、今回は画面表示が重要事項なもので それから、VBAが早く動く時間もある つまり、常にCPUが全開で動いていない又はどこかで引っかかっているような感じ
768 :
名無しさん@そうだ選挙にいこう :2014/01/18(土) 21:49:04.92
Excel単体じゃなくて、なんか計測機器繋いで結果表示してる系? それだとドライバ次第で速度全然変わるけど
そのとおりです ただ、760のソースコードでExcel 2013と2003で結果が違うのはドライバ以前の問題だよね
>>757 >Excel 2013のVBAはこんなものでしょうか
安心して
そんなものだよ
771 :
名無しさん@そうだ選挙にいこう :2014/01/18(土) 23:27:30.09
機器つけていない状態ならドライバ以前だろうけど、つけてる状態ならドライバの問題が大きいんじゃないの。 それがVBAというかOfficeというかにどの形式でデータ持ってきてるか知らんけどDDえとかだったら激遅になるはず。
772 :
名無しさん@そうだ選挙にいこう :2014/01/18(土) 23:29:53.04
あとはPCのスペック的に2013に足りてなくて普通に遅いとかもあるかもね
そしたら758でおこられちゃった
>>770 うちでも760のソースコードでExcel 2013と2003で結果が違うよって人いませんか
原因の特定
>>776 あなたのスキルでは原因の特定は無理だと思います
【1 OSの種類】 Windows8
【2 Excelのバージョン】 Excel2013
【3 VBAが使えるか】 いいえ
【4 VBAでの回答の可否】 否
隠してしまっていますが三つの項目の棒グラフのうち特に数値の大きい青のデータを第二軸に移しました
そうすると1軸にあるオレンジと灰のデータの間に青が入っています
解説サイトに倣い間隔とかを調整しましたが位置が入れ替わりません
どうにか青を右側に持ってくる方法はありますか?
http://i.imgur.com/I8h5uy3.jpg
解説サイトとはどのサイト
>>779 なんこか見たんですが、二つのデータを重ねないようにダミーのデータを噛ます方法を解説してるサイトばかりなんです…
>>781 その手がありましたか!
そんなことにも気づかずすみませんありがとうございます
783 :
名無しさん@そうだ選挙にいこう :2014/01/22(水) 21:27:09.87
>>757 ハードウエア・アクセラレーターを基本にしてるから
アクセラレーターoffにしてる関係で、余計に遅くなる
なんてことない?
それだけじゃなさそうだけど。
784 :
名無しさん@そうだ選挙にいこう :2014/01/22(水) 22:29:29.10 BE:2556456274-2BP(0)
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 否 A1:1月22日20時20分 A2:1月23日20時20分 A3:=A1-A2 でやってもエラー?がでます。 どうすれば A1:1月22日20時20分 A2:1月23日20時20分 A3:24時間 と表示させれるでしょうか?これは不可能なのですか?
>>757 扱えるセルの数全然違うし、そのせいでプロパティとかも 32bit 版が追加されてたりするから、色々複雑になってるんじゃね?
>>784 A1とA2は文字列で入力させる必要があるの?
「エラー?」が出るっていうのは具体的に書けないの?
それとも“エラー?”って表示されるの?
787 :
名無しさん@そうだ選挙にいこう :2014/01/22(水) 22:52:52.53
VLOOKUPでデータを引っ張ってきても 日付は書式までは引っ張ってきてくれず シリアル値の数値が表示されやがります。 これを防ぐ一番標準的で簡単な方法はなんですか?
>>784 =DATEVALUE(LEFT(A2,FIND("日",A2)))+TIMEVALUE(MID(A2,FIND("日",A2)+1,9))-DATEVALUE(LEFT(A1,FIND("日",A1)))-TIMEVALUE(MID(A1,FIND("日",A1)+1,9))
=LEFT(A2,FIND("日",A2))*1+MID(A2,FIND("日",A2)+1,9)*1-LEFT(A1,FIND("日",A1))*1-MID(A1,FIND("日",A1)+1,9)*1
791 :
787 :2014/01/22(水) 23:16:30.58
>>789 それかよ。
でも引っ張ってくるのが必ず日付じゃない場合はどうする?
792 :
名無しさん@そうだ選挙にいこう :2014/01/22(水) 23:40:44.82 BE:5752026397-2BP(0)
>>784 です。
>>788 さんのを
A1:1月22日20時20分
A2:1月23日20時20分
A3:=DATEVALUE(LEFT(A2,FIND("日",A2)))+TIMEVALUE(MID(A2,FIND("日",A2)+1,9))-DATEVALUE(LEFT(A1,FIND("日",A1)))-TIMEVALUE(MID(A1,FIND("日",A1)+1,9))
で試してみましたが
A3:1と出てイマイチよくわかりませんでした・・・
A1:2014/1/22 21:22
A2:2014/1/31 22:38
A3:1900/1/9 1:16
自分でもう一度挑戦してみたらこんなふうになってしまいました・・
どうしたらうまくいくのでしょうか?
793 :
名無しさん@そうだ選挙にいこう :2014/01/23(木) 00:19:31.29 BE:5752026397-2BP(0)
>>792 できました。
度々の質問で申し訳ないですが時給を計算したいのですが
現在の表示が24:00時間と計算式の結果が出ています。
その数字を使ってある数値を割りたいのですが
A1:24:00時間 B1:=C1/A1 C1:24000
で入力するとB1のところが#VALUE!と表示されます。
どうすれば1時間辺りが求まるでしょうか?
>>793 =C1/LEFT(A1,LEN(A1)-2)/24
795 :
名無しさん@そうだ選挙にいこう :2014/01/23(木) 03:50:44.56
千野死ねよ こいつ人間のくず
796 :
787 :2014/01/23(木) 10:50:16.54
>>789 >>ALL
VLOOKUPで日付をひっぱろうとしてきたときにシリアルの数値が表示される問題で
書式が「yyyy/mm/dd」の場合もあるし「mm/dd」の場合もあるし「aaa」もあるし「mm/dd hh:mm」もあるしそもそも日付じゃないこともありいろいろ。
こんなとき事前に書式設定じゃだめだと思うんだ。
書式までVLOOKUPでひっぱってくるには、どうすればいいですか?
つーか、この手のことで問題が起きるのは、元がおかしいから Excelはデータベースではなく方眼紙みたいなものなので データとしておかしな形も簡単に作れてしまうけど 単に表示するだけではなく、数式やグラフなどで参照するデータには 正しい作り方扱い方ってものがあるので、最初からそれに添ってないと 後から色々と苦労する
=TEXT(A2,IF("d3"=CELL("format",A2),"mmm/dd",0)) こんなかんじか。IFはvlookupとかになりそうだけどすんげーめんどくさいな
800 :
名無しさん@そうだ選挙にいこう :2014/01/23(木) 13:30:22.87
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【状況】 ・「入力A」、「入力B」、「入力C」、「出力」の4つのシートがある ・「入力A」、「入力B」、「入力C」は、A列以外のセルにはデータが入力されていない ・「入力A」のA列の行数は固定(仮に50行とする) ・「入力B」のA列の行数は不定 ・「入力C」のA列の行数は固定(仮に50行とする) 【やりたいこと】 ・「入力A」、「入力B」、「入力C」から、それぞれA列にある全てのセルを取り出して「出力」のA列に順に並べていきたい ・「入力A」、「入力B」、「入力C」の順に並べなければならない ・「入力B」のA列の行数変化に自動的に対応できるようにしたい 【例】 ------------------ 出力シートA列 ------------------ 入力AのA列セル(50個) ------------------ 入力BのA列セル(不定) ← ここのセル数の変化に自動対応 ------------------ 入力CのA列セル(50個) ------------------ 宜しくお願い致します。
一応説明するとCOUNTAで行数を取得、indirectで表示 飛び飛びだったらうまくいかないので数字で決め打ちもできるようにしてあるわ あと入力Aは10行にしてある、というか直すの忘れてたのでテキトーにうまいことやっといて
803 :
800 :2014/01/23(木) 15:37:16.52
>>801 素晴らしい!
ありがとうございます!
活用させて頂きます!
804 :
800 :2014/01/23(木) 16:24:54.97
>>802 動作確認と何をしているのか、解読させて頂きました!
結果的に、
「=INDIRECT(入力A(シート名)!r1(行数)c1,0)」
といった数式をつくってR1C1形式で参照しているのは解ったのですが、試しにと
「=INDIRECT(入力A!r1c1,0)」
をセルに直接入力するとエラーが出てしまいます
これは一体どういうことなのでしょうか?
度々申し訳ありませんが、ご教授を願えれば幸いです
「=INDIRECT("入力A!r1c1",0)」
806 :
800 :2014/01/23(木) 17:07:10.75
>>805 なるほど、こういうことでしたか…
これは恥ずかしい…
おかげ様で、あれこれどうにかなりそうです!
ありがとうございました!
深く感謝を!
【1 OSの種類 .】 Windows7 32bit 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】否 2種類の関数を教えてください。 一つ目は会社の会計年度を計算したいと思います 会社の会計年度は2月21日から翌年の2月20日までが1会計年度としています セルA2に「H 26/01/25」という形式で日付が入っています。 それを西暦になおした会計年度を算出したいと思います。 例 「H 22/02/21」〜「H 23/02/20」であれば「2010年度」 「H 23/02/21」〜「H 24/02/20」であれば「2011年度」 ・ 「H 42/02/21」〜「H 43/02/20」であれば「2030年度」とそれぞれ 関数で返していただきたいと思います。 2つ目の関数は上と同じように、セルA2の値から月々の締め日を算出したいと思います 月々の締め日は毎月21日〜翌月20日までを1ヵ月として 例 「H 26/02/21」〜「H 26/03/20」であれば「3月」 「H 26/07/21」〜「H 26/08/20」であれば「8月」 「H 26/12/21」〜「H 26/01/20」であれば「1月」とそれぞれ 関数で返していただきたいと思います。 よろしくお願いします。
>>807 Hの次には必ずスペースが入ってるの?
結果の数字は全角?
先ず和暦→西暦をしてみよう "H 26/01/24"とか文字列で入っているならば、 =datevalue(substitute(a1," ","")) とかする
>>807 まず日付がシリアル値になってないなら、書き換えても数式で変換してもいいからシリアル値にしろ
そうしたら、YEAR、MONTH、DAYで年、月、日を切り出せ
そうしたら月は、「=月+(日>=21)」、年度は「=年-(月*100+日<=220)」と、単純な計算で出せる
811 :
807 :2014/01/24(金) 19:40:16.96
>>808 Hの次には必ず半角ペースが入っています。
>>809 コピペでやると#VALUE!になってしまいます
812 :
807 :2014/01/24(金) 19:54:30.53
>>809 「H 19/03/26」でためして「2007年3月26日と表示されるようにできました。
813 :
807 :2014/01/24(金) 20:05:05.30
連投ですみません
>>807 月は
=JIS(MONTH(DATEVALUE(SUBSTITUTE(ASC(A2)," ","")))+(DAY(DATEVALUE(SUBSTITUTE(ASC(A2)," ","")))>=21)))&"月"
で出すことができました
年は
=(YEAR((DATEVALUE(SUBSTITUTE(ASC(A2)," ","")))))-(MONTH(DATEVALUE(SUBSTITUTE(ASC(A2)," ",""))*100+DAY(DATEVALUE(SUBSTITUTE(ASC(A2)," ",""))<=220)))
だと「#NUM!」になってしまいます
式をまとめるな 作業列使ってバラせ 式をまとめた結果、エラー原因が何処にあるのかわからなくなるなど本末転倒 まとめてもエラー原因を自力で特定できるレベルにあるなら構わないけど そのレベルに至ってない初心者は、作業列使って単純な式を1つ1つ並べていけ 因みに間違いはカッコの位置な カッコの位置間違いにすら、自分では気付けないレベルなら、 格好付けて1つの式にまとめずに、作業列使って段階を踏んでいけ 作業列は、結果が問題なく出るようになったら非表示にしても構わないんだからさ
慣れててもたまに間違うからねぇ 特に自動で修正してくれる機能、あれがヤバイ
Excel 2010 アップグレード版、ジョーシンで売ってるな。 サポート切れる前に欲しかったらラストチャンス。
間違うまでは問題ない 問題はそれに自分で気付けないこと
>>807 年
=JIS(1988+MID(A2,3,2)+IF(DATE(1900,MID(A2,6,2),MID(A2,9,2))<=51,-1,0))&"年度"
ifの中はシリアル値で51以下(1900/2/20以前)なら1引くって内容
桁数が決まってるならDATEVALUEよりMIDが早いと思う
このへんは好みの問題かねー
>>816 宣伝うぜぇ、と思ったら意外と安いな
実質5000円。未だに2003とか使ってる人は買ってもいい値段だと思う
820 :
名無しさん@そうだ選挙にいこう :2014/01/24(金) 22:07:58.39
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 検索で * や ? のようなワイルドカード文字そのものを探すには どうすれば良いでしょうか。
ダブルクォーテーションでかこむ
>>813 それだと12/21以降が13月になるぞ
年=JIS(YEAR(("H" & RIGHT(A2,8))*1-51))&"年度"
月=JIS(MONTH(EDATE(("H" & RIGHT(A2,8))*1,1)-20))&"月"
>>823 rightで切り取った文字列ってそのままdate型になるのか
良くそんなこと気づくな
>>824 RIGHTそのままじゃない
式をよく見てみ
826 :
820 :2014/01/25(土) 05:24:56.08
>>822 サンクス
wzエディタでは \* だったので、ソフトによって異なるのですね
>>821 " が検索されました
827 :
807 :2014/01/25(土) 08:15:12.42
828 :
名無しさん@そうだ選挙にいこう :2014/01/25(土) 09:20:46.61
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 桁数を返す関数ってありますか? A1に0001を入れた場合、4と返してほしいのですが、 LEN(A1)だと1って返ってきてしまいます。。。 よろしくお願いします。
>>828 文字列で"0001"を入力したならLEN(A1)で4が返ってくると思うけど
数値で0001と入力して4を返すのはVBA使わないと無理
830 :
名無しさん@そうだ選挙にいこう :2014/01/25(土) 09:52:27.02
>>829 ありがとうございます。
つまり、A1に '0001 と入力ということですね。
A1セルに0001とうって自動的に'0001 を入力した
と認識させるみたいなことはできますか?
毎回 ' をうつのは大変なので・・・
>>830 数字を入力する前にセルの書式を文字列にしておく
この場合は ' を入れなくてもいい
A1だけ@にしておけばいいのですね。 どっかで数字で使うときはvalue(A1)ってかんじで。 できましたー
>>832 VALUE関数は使わなくても、文字列のままでも計算に使える場合が多い
=A1+1ってやると"2"になる
834 :
名無しさん@そうだ選挙にいこう :2014/01/25(土) 21:16:46.79
エクセル2010です。 2枚のクレジットカードの還元率、年会費から2本の折れ線グラフを使って、 どのくらい使えばどちらが得なのか?を調べたいです。 ところがグラフの作り方がよくわかりません。 参考にしたいので以下のデータを使い、横軸を利用額としたグラフファイルを下さい。簡単なもので結構です。 楽天(還元率1%、年会費0)と漢方(還元率1.75%、年会費1575)の2枚 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 ?
836 :
名無しさん@そうだ選挙にいこう :2014/01/25(土) 21:37:28.41
>>835 完璧です。これを目指して勉強します。
どうもありがとうございました。
>>834 会費の差を還元率の差で割ればいい、Excel無関係
分岐点=(漢方の会費-楽天の会費)÷(漢方の還元率-楽天の還元率)
(1575-0)/(1.75%-1%)=210000
つまり21万使った時点で会費が相殺されて、あとは使えば使うほど得になる
実際の買い物では端数が必ず出るから、一括で使わない限りは21万を少し超えるぐらい買わないと得しない
まあ普通に生活してたら年間21万は絶対に使うだろうね
楽天はポンカンやキャンペーンをつかえば3〜5%のポイント取得が可能 年に数回10倍セールもある ただし、売値がamazonより高いこともあるのでよく調べて買う必要がある
839 :
名無しさん@そうだ選挙にいこう :2014/01/26(日) 00:36:27.92
>>834 折れ線オブジェクトじゃなく、散布図オブジェクトで
線を繋ぐのを選んだ方がいいからね。
840 :
名無しさん@そうだ選挙にいこう :2014/01/26(日) 01:34:25.69
>>837 >>838 今回はあくまで関数を使っと「表とグラフ」が目的で、
今後、クレジット部分と似たような事例で自分も作れるように質問しました。わかりにくくてすみません。
>>839 参考に致します。
>>840 そういう質問をする時は、その目的を一番にはっきり書くこと
グラフを作る練習をしたいって書けばもっと親切な人が色々と教えてくれる可能性もあるのに
まあExcelのグラフ機能はオマケなので 表だと解りにくいデータを、グラフで解りやすく出来れば良いってレベルならいいけど 見栄えの良いグラフを作りたいなら、Excelよりもグラフ機能に特化したソフトを覚えた方がいいけどね まあ、その先の話はスレ違いだけど
まあまあ書くやつってなんで揃いも揃って馬鹿なんだろうな
844 :
名無しさん@そうだ選挙にいこう :2014/01/26(日) 10:45:56.25
まあ暖かく見守ってあげろや
何故そんなに悔しがってるのかわからん MSが悔しがるなら解るが・・・
846 :
名無しさん@そうだ選挙にいこう :2014/01/26(日) 15:20:20.58
>>846 どうやっても循環参照になるだろう
問題が悪すぎるのでその学校は滅ぶべき
欄外、つまり作業セル使っても良いってことなら解けるけどね でも学校の課題なら、理解できてないのに結果だけ教えて貰うと 墜ちこぼれる原因になるから、教えないでおく 必要なのは「答え」ではなく「自分で解けるようになること」だからね
応用4シートってどれ?
>850 応用4のシートはこの数独のシートです。
とりあえず終ったか では次の質問どうぞ
いやいやww
ほい、次 6ロロ ロ3ロ ロ2ロ 1ロ5 ロロ9 ロロロ ロロロ ロロロ ロロロ 7ロロ 1ロ5 ロロロ ロ2ロ ロロロ ロ4ロ ロロロ ロロロ ロ8ロ ロ8ロ 4ロロ ロロロ ロ3ロ ロロロ ロロロ ロロロ ロロロ 1ロ7
698731425 145269378 372854619 764185932 829673541 513942786 987416253 231597864 456328197
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel2007,2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 シート1で作成した資料から、ある単語が含まれたデータをシート2に抽出したいのですが関数でどうにかなるのでしょうか? よろしくお願いします。
>>857 VLOOKUPや、INDEX&MATCHで
具体的な使い方はヘルプかグーグル先生参照
>>857 コピーしてからフィルタとか
シート1A1=シート2!a1
みたいに入力しておいてフィルタとか
数独はソルバーでできそうだな
office2013が入ってるPCを買いましたが すぐに64bitだかのofficeをダウンロードをするんですか
はて?(^▽^)
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 自作関数で、1つ上のセルに入ってるデータを取り出す方法を教えてください 例えば、A1に「100」、A2に自作関数を入れるとして A2の中でA1に入っている「100」を利用して計算した結果を 使用したいんです。 その関数をそのまま B2にコピーして、B1に「200」とした時は、200の値を使用して 計算したいんです。 よろしくお願いします。
=A1
>>868 できました。ありがとうございます。
Function ikkoue() As String
ikkoue = Application.ThisCell.Offset(-1, 0).Value
End Function
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 VBAなしで シート保護のロックのかかったシートに 図を挿入したいのですが、 方法はありませんか? (図を貼り付けOKなセルだけロックを解除するとか) また、ロックはパスワード付きロックで 「シート製作者(ただしVBAを知らない)に ロック前のシートに、VBAを用いない なんからの加工してもらう依頼をする程度」 なら可能で、 ロックが必要な箇所に絶対にロックする必要があり、 「ロック自体を外してもらう」は不可能です ご教示よろしくお願いします
>>870 記憶マクロで
・シートロック解除
・シート「挿入図」にある図をコピー
・挿入先に挿入
・シートロック
でいいだろ
VBA使わないんだから、毎回図の名前を同じにしてからシート「挿入図」に貼り付ける作業は
利用者がやらねばならん
>>872 管理者側でパスワードロックされていて解除が出来ません
図はシート末端利用者側で利用者ごと個別に別の図を
jpgなりgifなりで用意してそれを貼り付けたいのですが
【1 OSの種類 .】 Windows7 home 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 ファイルをpdfで保存しようとしてるんですが(プリンタは使っていません) 名前を付けて保存→PDFを選択→ プリンターがインストールされていません。ってでてくる んで、メッセージに従って印刷タブからプリンターの追加をしようとすると、 現在、Active Directoryドメインサービスは利用できません と言って追加が出来ない サービスの一覧見てもActive Directoryって名前は見当たらんし(何か他の名前にあるんですかね?) ※ファイルタブの保存と送信からPDF/XPS ドキュメントの作成 をやってみてもダメでした どうやったらPDFで保存出来ます? 最悪、フリーソフトでもそういうのがあるみたいなんだけど、出来たらそういうのは 入れたくないんですがねぇ
875 :
名無しさん@そうだ選挙にいこう :2014/01/28(火) 12:28:19.02
>>870 シート製作者に、梅酒ロックを飲んでもらい
ベロンベロンに酔っぱらった状態でパスワードを聞き出す。
そしてVBAでそのパスワードでロックを外し
図を挿入したあとまたVBAでパスワード付でロックする。
>>875 ワロタ
>>870 「シート製作者(ただしVBAを知らない)に
ロック前のシートに、VBAを用いない
なんからの加工してもらう依頼をする程度」
の時点で図を挿入してもらうしかない
もしくはパスワードをクラックするって方法もあるけど
やり方はぐぐってくれ
>>874 プリンタの追加できないね。なんでだろうね。
XPSドキュメントライターってのじゃダメかな。これでいけたけどな
あとはdopdfって仮想プリンタがオススメ。普通に便利
>>877 874です。877さんも追加出来ないんですか。う〜っん、紹介してくれたものも合わせて考えてみます
ありがとう
879 :
名無しさん@そうだ選挙にいこう :2014/01/29(水) 08:16:26.20
>>874 俺の場合、名前を付けて保存で、*.PDFを選ぶと、
「プリンターが選択されていません」なんて出ないで保存される。
今まで、なにかを実際に印刷したことありますか?
今回印刷はしないが、一度は実際になにかを印刷することで
ドライバーが組み込まれる。以降、PDF保存時にはそのドライバーの
参照だけするのかもしれない。
そんな感じになってますね。
880 :
名無しさん@そうだ選挙にいこう :2014/01/29(水) 08:28:45.06
>>874 次のやり方だとどうだろ。
「ファイル」=>「保存と送信」=>「PDF/XPSドキュメントの作成」
874です。レスありがとうです
>>879 そのPCにはプリンタを繋いだことがありません。印刷するときは他のPCでやってました^^;
>>880 すんません、874でも書いてるんですが既にそれは試して出来ませんでした。
882 :
名無しさん@そうだ選挙にいこう :2014/01/29(水) 11:56:35.06
【1 OSの種類 .】 Windows8.1 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 初歩的なことだと思いますがよろしくお願いします。 カレンダーを作り土日の色を変え、会社の休日・祝日もリストを作って色を変えようとしています このリストについてなんですが、 会社の休日が不規則なので別シートに作らないで、月ごとにカレンダーと同じシートにリスト欄を作り予定が決まったらそこに打ち込んで色を変えるようにしたいんですが .リスト入力の際に、年と月を省略して日を打ち込んだけでカレンダーに条件付き書式に飛ばせないか 例えば2014年1月のカレンダーのシートには1月の休日リスト欄を作り、そこに13日なら「13」と打ち込んだだけで条件付き書式等で13日の色を休日の色に変える 年と月の省略のところで手が止まってしまっています どなたか良いやり方を教えていただければ幸いです 年と月を記入したセルはそれぞれ別にあります
>>882 A1に日付
B1から下に日付。「1」「14」など
A1の条件付き書式 =COUNTIF(B:B,DAY(A1))
884 :
874 :2014/01/29(水) 18:03:57.57
874です。pdfへの出力ができなかった件ですが、解決しました。 サービスでprinter spoolerが停止になっていて(というかかなり以前に自分でしてたんですが^^;) それを自動にしてPCを再起動後にプリンタの追加をするとpdfへの出力が出来るようになりました。 おさわがせm(__)mです。
そんな気がした 俺も試したけどprinter spooler切ってたんで出来なかった めんどくせーから放っといたんだが
printer spoolerを切る意味がわからない 使用メモリもたかが知れてるし、メリットなんて自己満足以外ほとんどないだろ
自己満足というメリットがあるじゃないか。 まぁ、言ってもしゃあない。
887って読解力なくなくなくない? 886はメリットの一つが自己満足だとちゃんと書いてるジャマイカ
>>886 分からないのになんでわざわざ会話に入ってくるのか分からない
とアスペ合戦に参加してみる
自己満で切ってトラブルで右往左往とか迷惑にもほどがある
891 :
名無しさん@そうだ選挙にいこう :2014/01/30(木) 10:17:29.73
まーた俺が一番偉い合戦か。病院行って来い。ならべくデカいところな。
>>888 読解力無いのは君だ。
>>886 が「切る意味が分からない」と言ってる事に対して
>>887 は「自己満足と言うメリット」が切る意味だと答えている。
両者の違いは自己満足というものに対する評価の差であり、
すなわち個々の価値観の違いである。
価値観に優劣は付けられないから「言ってもしゃあない」と結んでいる。
>>883 ありがとうございます。
しかし無理でした
まったく色が変わりません
895 :
名無しさん@そうだ選挙にいこう :2014/01/30(木) 19:48:47.78
>>894 手間暇かけていただいて本当にありがとうございます
完璧にできました
本当にありがとうございました
896 :
名無しさん@そうだ選挙にいこう :2014/01/31(金) 00:03:40.67
>>897 こういうのって結局使いにくくてイライラするのよね
ボタン100個まとめたやつ買ったことあるけど いちどざっと見ただけで使ってないな
>>897 パス解除してソース見てみたら、稚拙なコードでワロタw
でも自分で管理する用ではなく、明らかに他人がソース見ることを前提にしたコメント書いてるから
VBAには詳しくなくても、Excelのパスワードは知識が無い者が誤って弄ることを防ぐためのもので
内容の流出を防ぐためのものじゃないから簡単に解除できるってことは知ってるみたいだな
901 :
名無しさん@そうだ選挙にいこう :2014/02/01(土) 13:28:50.82
VBAのパスワードは 知識が無い者が誤って弄ることを防ぐためのものではなくて 知識が有る者に幼稚なコードを見られることを防ぐためにあるんだぞ。
902 :
名無しさん@そうだ選挙にいこう :2014/02/01(土) 13:29:24.96
>>900 どうやってパスワードをクラックしたのだ?
>>902 ヒント:稚拙なコード書く奴はパスワード設定も稚拙でザル
904 :
名無しさん@そうだ選挙にいこう :2014/02/01(土) 21:34:07.48
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 はい(ほんの少しですが…) 【4 VBAでの回答の可否】 可 A10-11,A12-13は結合セルです。 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A10:A13")) Is Nothing Then Dim x Dim y x = 1 y = Range(Target.Address).Row 〜処理〜 Cells(y, x).Select A10-11に、入力してエンターでセル位置がA12-13に移動します。 後、VBAでA10-11にセル位置を戻しているのですが、矢印→でセル位置を移動すると 通常ならB10へ移動するはずなのですが、何故かB12へ移動してしまいます。 セルの結合を解除すれば、通常の動きをするは確認できたのですが、 結合状態で通常通りの移動は、出来ないものなのでしょうか? 宜しくお願いします。
vbaのパスって解読はできないけど、バイナリエディタで置き換えはできる xlsxでもできるかは知らん
>>905 xlsxなら展開してからバイナリ置換して戻せば良いだけ
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 Ctrl+ホイールで画面の表示倍率が変わりますよね? 1ホイールにつき15%なのですが これを10%刻みにすることはできますか?
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 すいません 数字を扱う以外での質問をさせています 2つのcsvファイルがあります ファイル甲には 同じ行の左から「text_001」「Apple」とかかれてあり ファイル乙には「text_001」「りんご」「Apple」とあります なお「それぞれのファイルで載っている行の番号は異なっています」 行の数は1000近くに達しています 1.ファイル甲の同じ行の「text_001」「Apple」の2つの文言がファイル乙の同じ行の「text_001」「Apple」と完全に一致することを確認し 2.ファイル甲の「Apple」を右1つ横のセルに移し 3.さらにファイル甲の「Apple」のを右1つ横のセルに「自動処理」と記述をし 4.ファイル乙の「りんご」の文言を空けた「text_001」「Apple」の間のセルに挿入する つまり完成系は ファイル甲が「text_001」「りんご」「Apple」「自動処理」となっている行と 文言が一致しないので「自動処理できなかった行」 の2つが混雑する状態にしたいのです このようなことをexcelで処理できませんでしょうか? もちろん編集の過程でcsvファイル以外の型式に変更してもかまいません
>>910 一致しなかった時は、手順2の右に移す処理もしないの?
ありがとうございます ただ上手く10行を超える量を処理できないようです…
すいませんつかえました!!!
支えました?
基本的なExcelの操作なんですが あらかじめ右下の小さい四角をつまんで下に欄を広げたあとに 挿入すればいけました
それは オートフィル と 言います
#VALUE!との表示が 1セルあたりの文章が長くなるセルに頻出しています これがExcelの技術的な限界なんでしょうね
>>919 君の数式の通りに計算したら結果がvalueエラーになるだけ
自分の能力の低さによる不都合を、モノ(ソフトウェア)のせいにする人って・・・・・w
(ソフトウェア)
?
【1 OSの種類 .】 Windows Vista
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否 (場合によって勉強します)
>>2 ・A 各用語の違いがよく解っていない初心者です。
年間予定表(カレンダー)を、作成しています。
表を受け取った人が、指定のセル(A1の「日付・曜日」セル、B2の「予定欄」以下続く)に
自由な色を塗る「ボタン?ボックス?」を設置(?)したいです。
1)例 日曜日のセルに自由な色を塗る (任意の曜日のセルに自由な色を塗る)
A1の「日付・曜日」セル、B2の「予定欄」、以下、すべての日曜日の色塗りを一括でしたい。
2)例 予定欄の「(例)会議」のセル、すべてに自由な色を塗る
B2の「(例)会議」セル、A1の「日付・曜日」セル、以下、すべての「(例)会議」の色塗りを一括でしたい。
指定の色を、一括で塗る事は出来たのですが、配布先、各人の色の好みが統一できず
各自で自由な色を選んでもらう「ボタン?ボックス?」を設置(?)したいと思い立ちました。
926 :
924 :2014/02/02(日) 23:07:10.35
>>925 ありがとうございます
左上ボタン=日付 右上ボタン=予定欄 左下ボタン=予定欄選択?
この確認までで、この先、何をどうしたら良いのか、正直分かりません。
いただいたボタンを生かせるよう、ググりに行ってきます。
927 :
名無しさん@そうだ選挙にいこう :2014/02/03(月) 00:15:04.47
素朴な疑問です。
このグラフは横軸幅が不均等なのですが、
1.Excelではこのような横軸幅不均等のグラフを描くことができるんでしょうか。
2.Excelではできないとしたら、他にこのようなことができるソフトとかお知りですか。
よろしくお願いします。
http://i.imgur.com/zwwUZ2L.jpg
>>927 そのグラフひどいねw
エンジン性能曲線を知らない人はチンプンカンプンかもしれないけど・・・
>>924 どこかのセルに好みの土曜色・日曜色インデックスコードを入れるようにすれば、
条件付き書式で持ってこれるのでは?
>>929 ありがとうございます。
散布図形式で曲線を描くことしか考えていませんでした。
932 :
名無しさん@そうだ選挙にいこう :2014/02/03(月) 07:05:20.55
誤爆しました。すみません。
>>919 ですが短い文章では文字数が
英語で270字
と
日本語で115字
ほどのものを処理しようと致しましたら#VALUEとエラーが出ました
それよりも短い文章はエラーが出ていません
>>934 数式がわからないとなんとも言えない
少なくとも俺の知識では君の数式が悪いとしか原因が上げられない
valueになる具体例を上げろよ
938 :
名無しさん@そうだ選挙にいこう :2014/02/03(月) 08:32:20.12
あるセルに文字列で 2014/2/3(月) と入れると(右側のセルがブランクなら)セルからはみ出して全部表示されますが、 表示形式で、yyyy/m/d(aaa)としてシリアル値で入力すると、####になります。 セルの結合以外の解決方法ないですか?
解決のすべがあったのですか! 畏れ多くも再び制作してくれるとは… 本当に頭が下がります
もし厳密に色々したいならVBA覚えたほうが早いわ
ありがとうございました!
945 :
名無しさん@そうだ選挙にいこう :2014/02/03(月) 22:54:21.89
質問させてください。 100万円未満を非表示にしたい場合(例 154,789,123→154)、 どのようにユーザー定義を設定したらよいのでしょうか? 元々あるユーザー定義でも100万円未満を非表示にできましたが、 四捨五入されてしまい困ってます。四捨五入はせずに表示したいです。 数が多すぎるためRounddownは避けたいのですが、いい方法はないでしょうか? 何卒よろしくお願い致します。
947 :
名無しさん@そうだ選挙にいこう :2014/02/03(月) 23:43:18.65
>>946 ありがとうございます。
変則的な方法はあるにはあるけど、基本的には出来ないのですね…
今、表を作成しており、その表の全部のセルにSUM関数等が入っています。
それを全部、百万円未満非表示(四捨五入しない)にしようと思ったら、
一つ一つを全部手作業でRounddowndで囲っていく方法しかないでしょうか?
表が1つならまだしも、5個くらいあるので、この方法にですると丸1日潰れ、
他の仕事が出来なくなりそうで非常に困ってます…
>>947 別シートにしたら?
新しいシートorブックで、
a1=rounddown(元のシート名!A1)
あとはオートフィル
>>947 表の規模による
vbaなら即終了。コードは下のを使えばok
使えないならうだうだ言う前にやった方が早い
Sub a()
Dim c As Range
For Each c In ActiveSheet.UsedRange
If Left(c.Formula, 1) = "=" Then
c.Formula = "=rounddown(" & Right(c.Formula, Len(c.Formula) - 1) & ",-6)"
End If
Next c
End Sub
951 :
924 :2014/02/04(火) 12:48:29.73
>>930 ありがとうございます
>どこかのセルに好みの土曜色・日曜色インデックスコードを入れるようにすれば
この部分を、もう少し噛み砕いて教えていただけませんか
「excel インデックスコード」で検索してみたのですが、分からずにいます
>>951 カラーインデックスでなくても、例えば「青」「薄青」「淡青」でも、「1」「2」「3」でも、、
希望する好みの色を判別できればOK
で、a1に「青」と入れたとする。
(土曜・日曜の判定は省略しますが)
塗りつぶししたいセルの条件付き書式では、「数式を使用して…決定」を選ぶ
数式は、
=a1="青" として書式に(カラーパレットから)青を指定する
=a1="薄青"
=a1="淡青"
とかルールをただただ追加いけば実現しますw
953 :
名無しさん@そうだ選挙にいこう :2014/02/04(火) 18:55:08.35
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel 2013 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 質問させてください。 自分のレベルは拾い物のVBAコードと、自分の操作をマクロで記録したものを並べて簡単な編集が出来る程度です。 言語としてのVBは全く理解していません。 以下のコードをあるサイトで拾ったのですが、InputBoxに入力したディレクトリ内のファイルをリスト化するようになっています。 ディレクトリ名を入力するのではなく、フォルダを選択してそのフォルダ内のファイル一覧を出力するように改造したいのですが、 どのようなコードを入れればいいのでしょうか。 改行エラーが出るので次レスにコード貼ります。
954 :
名無しさん@そうだ選挙にいこう :2014/02/04(火) 18:55:38.17
Sub MakeFileList() Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定") Set FS = CreateObject("Scripting.FileSystemObject") Set Fol = FS.GetFolder(Target) Set Fil = Fol.Files '見出しを付ける ThisWorkbook.Sheets(1).Range("B2") = "ファイル名" ThisWorkbook.Sheets(1).Range("B2:Es2").HorizontalAlignment = xlCenter i = 3 For Each Fx In Fil 'ファイル名 sFile = Fx.Name 'ファイル名の書き出し ThisWorkbook.Sheets(1).Cells(i, 2) = sFile i = i + 1 Next 低レベルな質問だとは思いますがよろしくお願いします。
956 :
名無しさん@そうだ選挙にいこう :2014/02/04(火) 19:30:56.96
>>955 すみません、そういうサイトはいくつか見たのですが、
Target = の対象に持ってくる方法がわからないので質問させてもらいました。
953に書きましたが、VBAを手書きで編集する方法はほぼ無知ですのでお許しいただければ...
>>953-954 Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定")
↓
Const CurDir = "C:\" ' トップに表示するドライブやディレクトリのパス
Dim SelectFolder As Object
Set SelectFolder = CreateObject("Shell.Application").BrowseForFolder(&O0, "ディレクトリの指定", &H1 + &H10, CurDir)
If SelectFolder Is Nothing Then
MsgBox "キャンセルされました"
Exit Sub
End If
Target = SelectFolder.Items.Item.Path
958 :
名無しさん@そうだ選挙にいこう :2014/02/04(火) 20:46:28.99
959 :
名無しさん@そうだ選挙にいこう :2014/02/04(火) 20:49:56.82
960 :
名無しさん@そうだ選挙にいこう :2014/02/05(水) 17:53:19.33
リボンを常に細く表示する方法を教えて
962 :
名無しさん@そうだ選挙にいこう :2014/02/06(木) 06:04:33.86
964 :
名無しさん@そうだ選挙にいこう :2014/02/06(木) 19:22:16.13
セル内のパディングを設定したいんだけど どうすりゃいいんだっけか
均等割り付け?
コピーしたセルを挿入 ってキーボードショートカット無い?
あった CTRL++だったわ
>>970 フィルターとか言うへんてこ機能が召喚されるで
>>971 フィルターもEなのか。
セルコピー→挿入したい場所で右クリ→E→Enter
かな。
それかマウス使うなら、ctrl押しながらD&Dの方が楽だったかも
973 :
名無しさん@そうだ選挙にいこう :2014/02/07(金) 14:34:56.93
123改行改行 という文字列を数値化したいんだけど VALUE(A1)がエラーになるのは何で?
>>973 改行は改行という「文字」
=VALUE(SUBSTITUTE(A1,CHAR(10),""))
とかで
=VALUE(CLEAN(A1)) の方がこの場合スマートだったか
あるセルとあるセルの書式の違いを見たいんだけど どうすれば差分がわかりますか?
>>977 cell関数の第一引数"format"かvba
多分ユーザー書式を見るのが一番早い
>>978 ありがとう
あるセルの数値は微妙に右から浮いてて(インデントではない)
あるセルの数値は右にぴったりくっついてて
その差がなんなんかまったく分からなかったので
しらべて煮ます
インデントしなくても 「0 」 「0」 という書式だと、上のは右にスペース1つ分空き、下のは右にぴったりになる
書式設定の数値だか小数点だかが右にスペースあるんだよ 俺もずいぶんハマったことがアル
次スレ
乙
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 セルA1に1〜99の数値が入っていて 1だったら数値Aを、2だったら数値Bを・・・(99まで)という形で A1にある数値に応じて指定した数値を返すということがしたいのですが どのような条件式を使えばできるでしょうか
>>986 作業列に一覧を作っておいて
=INDIRECT("B"&A1)
例ではB列を使用
989 :
986 :2014/02/08(土) 10:29:59.88
ありがとうございました、無事できました!
うめ
うめ
梅
うめ
うめ
うみ
うも
うめ
998
999
千
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。