Excel総合相談所 116 [転載禁止]©2ch.net
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
3 :
名無しさん@そうだ選挙にいこう:2014/12/19(金) 13:11:52.31
>>1いい加減これ直せや
×・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
○・B 書籍や解説サイトの紹介依頼はスレ違い。ここは技術的な質問のみで。
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
条件付き書式でセルの文字数が8以上20未満の時に文字の色を変える事って出来ますか?
こんなピボットテーブルが有ったとして
--------
| data |
--------
| 2 |
--------
| 4 |
--------
| 6(合計)|
--------
この書式か何かだけを、
数値だけが入っている別のセルにコピペして
--------
| |
--------
| 20 |
--------
| 40 |
--------
新しいピボットテーブルを作成することは可能でしょうか?
--------
| data |
--------
| 20 |
--------
| 40 |
--------
| 60(合計)|
--------
訂正
ピボットテーブルではなくて、普通のテーブルでお願いします。
大久保ピポットを使え
うめ
>>4 =and(len(a1)>=8,len(a1)<20)
みたいな感じ
>>5 参照する元データを変えないと無理っぽい気がする
10 :
4:2014/12/20(土) 13:50:22.22
【1 OSの種類 .】 Windows7pro
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 コピペだけできます
【4 VBAでの回答の可否】 可
「ABC」というシートのA1に値が入っていたら、 マクロ「Sub MacroC3」他5個を
実行するコードをお願いしますm(_ _)m
>>11 自動的に判断させるならイベントプロシージャというのを使うんだけど、
「値が入っていたら」ってのは何時どんなタイミングでチェックするの?
たとえば、ブックを開いたとき、シート「ABC」をアクティブにしたとき、
シート「ABC」のA1の値が変更されたとき、の3種類のタイミングは全部違うイベントになるよ。
13 :
11:2014/12/20(土) 16:58:38.28
>>12 例えば下みたいにマクロA1を実行するとB1〜C6までを実行しています
そこでマクロA1を実行してる最中に、シート「ABC」のA1に値が入っていない場合は
C3のマクロを飛ばして、C4から再開したいと思います。
Sub MacroA1()
Sub MacroB1
Sub MacroB2
Sub MacroB3
Sub MacroB4
Sub MacroB5
Sub MacroC1
Sub MacroC2
Sub MacroC3
Sub MacroC4
Sub MacroC5
Sub MacroC6
C3のマクロはこんな感じの構成になっています。
Sub MacroC3()
Sub MacroD1
Sub MacroD2
Sub MacroD3
Sub MacroD4
よろしくお願いします。
>>13 callじゃないの
Sub MacroA1()
call MacroC2
if(sheets("abc").cells(1,1)<>"")then
call MacroC3
endif
call MacroC4
みたいな感じ
Windows8.1
office2013
index(1行800列の範囲、1行、指定の列)の関数をindex1などと表すようにします
セルに
=index1+index2+index3+..+index10と打つとメモリが98%などになって応答停止します
こういう使い方はダメなのでしょうか
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
セルの内容に「\137,980」のような金額が入っていますが
これをsumなどで演算させると0として計算してしまいます。
Value関数を使って数値に変換しようとしても、#value!と
エラーが出てきて使えません。
簡単に演算させる方法は無いでしょうか?
>>17 簡単かどうかしらんけど
すぐ終わるならsubstituteで置換
長く使うなら置換して\は書式設定にする
>>18 ありがとう御座います。
substitute調べてみたのですが、置換する関数のようですね。
\を消してからValueするのでしょうか?
複数のセル(飛び飛びでの選択)の演算が目的なので、
ちょっと大変そうです。
大元のワークシートののデータは金額で、書式指定で\が
ついているようですが、これを=で参照しているセルが
コピー元になります。
これを別のワークシートに「形式を指定して貼り付け」すると
文字列になってしまうようです。
結果、これを計算させようとしてもあくまでも文字列であると。
ありがちなパターンだと思っていたのですが、かなり難しいです。
>>19 「1000」と書式設定の\をコピーペーストして「\1,000」
になるの?聞いたこと無い
「形式を指定して貼り付け」
もどの形式を指定したのか不明
21 :
名無しさん@そうだ選挙にいこう:2014/12/21(日) 17:51:17.83
【1 OSの種類 .】 Windows7pro
【2 Excelのバージョン 】 Excel2013
【3 ダウンロードして起動できるのか .】Excel2013 word2013が入っているWindows8搭載のノートPCを購入しましたが、
他のPCにExcel2013 word2013をダウンロードし、シリアルコードを入力すれば使えるようになるでしょうか?
【4 使用できるかの回答の可否】
無知ですみません。ダウンロード版を購入すれば2人までは使えると書いてあったので、どうでしょうか?
>>21 使えると書いてあったなら使えるんだろう
それ以外どう解釈するんだ
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
月末が何日かtodayみたいなので出したいです
何か方法ありませんか
=DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1
書式を日付に
=EOMONTH(TODAY(),0)
書式を日付に
>月末が何日か
30とか31とかいう数値が欲しいなら
=DAY(EOMONTH(TODAY(),0))
書式はそのままでOK(^▽^)
>24-26
出来ました
ありがとうございました
28 :
名無しさん@そうだ選挙にいこう:2014/12/22(月) 15:54:02.95
いままでExcel2000を使っていて
Excel2010にバージョンアップしたら
起動の度に1秒ぐらい待たされるんだが
Excel2000は0.1秒ぐらいで起動できたぞ。
作業の途中で十秒ぐらい(反応なし)に成るときもあるぐらいだから気にすんな
>>28 1秒ぐらい待つだけのメリットはあるぞ
ふと思った
下っ端はその恩恵を受けて、必死こいて効率化を進めている
上司はその上澄み液を用いて表計算にしか使ってない
バージョンアップの決定権は上司にある
・・・ということだな
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2013(2010だったかも)
【3 VBAが使えるか .】 少し
【4 VBAでの回答の可否】 (できれば) 否
「KK列を探索してA列の対応する行に左詰めで値を埋めていきたい」
KK列以降の「??#n.n」の「??」が、A列にあります。これをキーとします。
同様に「??#n.n」の「n.n」を値とします。
A列とKK列のキーが対応する値を、B列からZ列まで当てはめていきたいです。
KK列はソートされていません。また、BlueやGreenなどの不要データも含まれます。
A B C D・・・・・・KK列
10 1.1 1.2 1.3・・・・・10#1.1
20 2.5 2.0 2.5・・・・・BX#5.5
30 3.3 3.3 3.3・・・・・Blue
A0 4.1 4.2 4.3・・・・・BX#5.4
BX 5.5 5.4 5.3・・・・・30#3.3
・・・・・・・・・・・・・・・・・・・・10#1.2
・・・・・・・・・・・・・・・・・・・・Green
・・・・・・・・・・・・・・・・・・・・BX#5.3
・・・・・・・・・・・・・・・・・・・・10#1.2
ワークシート関数だけで可能でしょうか?できればKK列にコピペするだけが望ましいです。
可能であればどんな関数を使うべきかのヒントだけでも頂けるとありがたいです。よろしくお願いします。
>>31 KK列の一番下の「10#1.2」は「10#1.3」の間違いなのか、同じデータは無視するのか、どっち?
>>32 最後の行は「10#1.3」です。ご指摘ありがとうございます。
同じデータであっても無視しないです。
エクセルとブラウザの両方とにらめっこしてますが、出来る気がしないですね・・・
>>33 数式だけでもできそうだけど、面倒すぎて考える気になれん
というわけでサクっとVBA
Option Explicit
Sub Macro1()
Dim r As Long
Dim KK As String
Dim a() As String
Dim r2 As Range
For r = 1 To Cells(Rows.Count, "KK").End(xlUp).Row
KK = Cells(r, "KK")
If InStr(KK, "#") > 0 Then
a = Split(KK, "#")
Set r2 = Columns("A").Find(what:=a(0), SearchOrder:=xlByColumns)
If Not (r2 Is Nothing) Then
Rows(r2.Row).Find(what:="", SearchOrder:=xlByRows).Value = a(1)
End If
End If
Next
End Sub
>>34 あーーーりがとうごさいます!!VBAの方が簡単なんですね。勉強します
36 :
名無しさん@そうだ選挙にいこう:2014/12/23(火) 17:11:00.83
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
レイヤー機能ってありませんか?
A4の用紙に3種類くらい表を作りたいんですが
1個目の表に合わせて横幅とか決まっちゃうので
結合したり色々工夫しないとうまくできません
一応3つのシートでそれぞれ表を作って
カメラ機能で印刷用のシートに貼り付ければそれっぽくはなるんですが
これ以外にやり方ってあります?
Win7のExcel2013で一つのセルに長い文章を入れて折り返して全部表示
にすると、一つのセルが大きな長方形になりますよね。
まあそれは正常なのですが、そういうセルが何行もあると、矢印キーで
スクロールする時に、次のセルに一気にピョンと飛ぶので見づらいのですが、
こういう場合でもスムーズにスクロールする方法はないでしょうか?
一つのセルに長い文章入れるのが異常
>>39 まず、そういう使い方を改めることからやり始めたらどうだ?
>>42 そんなのレアケース
そんなファイル作成するのはマトモな奴じゃない
>>39 無い
俺もそういう使い方よくするけど、それだけダルイ
テキトーなレポート作るときは楽だよ
現実にそういうことがあって相談してるのに、そんなことはない、レアケースと突っぱねられてもかわいそう
働いたことないのか、Excel 使うような仕事してない(=ホワイトカラーでない)んだろ
ここはエクセルをワープロ代わりにするスレ
50 :
名無しさん@そうだ選挙にいこう:2014/12/24(水) 19:21:51.19
新製品開発のヒントと思えばいいのかな?ExcelWord
ところが、そういうの作ると、今度は、セルの中で罫線
引けないの?とか・・・・
逆にセルには20文字以上いれたり数式やマクロが無いとエラーにすべき
1)
A2でF2キータイプ
=sum() を入力して←キーF2キータイプ
↓↓enterでA4選択してから↑押すとA1に行きます
A4選択したらA4を起点にして追加の選択を出来るようになりませんか
2)
F2やダブルクリックで編集を開始した時に、セルではなく画面上の数式バーにカーソルを合わせて編集出来るように出来ませんか
3)
IMEが日本語モードでshift+spaceやctrl+spaceで入力開始ではなく、IME英数モードの時のように列行選択に出来ませんか
4)
文字入力中にもかかわらずctrl+homeでセルを移動してしまう場合があると思いますが、入力中なら必ずセル内の先頭に移動するようにできまけんか
>>52 1
>↓↓enterでA4選択してから↑押すとA1に行きます
いかない。A3になるけど、それはいいか。
shift押しながら→か↓を押すと、範囲選択になるよ
ctrl+カーソル、end+カーソル等もある。excel ショートカット などでぐぐるとよし
また、F8を押すと参照モードになる。あんまり使わないのでなんとも言えない。
$a:$aなど全体なら直接入力、B3:C4みたいな矩形はマウスで入力が早いと思うけど・・・
まぁ、おこのみで
2.3.4
多分無い
>文字入力中にもかかわらずctrl+homeでセルを移動してしまう場合が
俺はない
>>53 すみません、だいぶトンチンカンな事を言ってましたね。
2)、3)、できませんか。ありがとうございます。
4)、については勘違いでした。すみません。解決しました。
セル上での「=」の入力やマウスのダブルクリックによる「入力モード」か、
F2キーによる「編集モード」によって動きは完全に決まっているのですね。
なんとなく使っていて変な動きだなと思ってましたが間違いでした。
以下、1)と4)について本来言いたかったことです。
もう無視していただいて結構です。お手数おかけしてすみません。
1)
A2で「=sum(」を入力>↓キー(A3)>「,」を入力>→キーで、
A2起点でB2に行くのではなくB3に移動するようにしたい。です。
shift+矢印での範囲選択等ではなく。(カンマなので。)
これもなれるしかなさそうですよね。
4)
「=sum(」を入力>矢印キーで式へのセル選択モードになってしまう動き。
文字を入力しているのだから勝手にセル選択モードにしないようにしたいです。
「=sum(」が式としてセルを選択できる状態にあるからセル選択モードになるとしても、
A2で「=sum()」を入力>矢印キーで「入力した数式は正しくありません」という
エラーになるのは、セルを選択すべき状態にないのだから文字入力モードのままにしたい。
お邪魔しました。
55 :
あ:2014/12/25(木) 14:10:30.81
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://ヽ:::::::::::::::|
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// ヽ::::::::::::::l
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/:::「'ヽ:::::::::::// ヽ:::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ノl:::ノ l:::::::/ ヽ::::::::|
ノ:::::::::::::::::::::::::::::::::::::::::::::::::::::/ ゙゙ ノ:::/ ,,;;;;;;,, ,,,,ヽ:::::l
):::::::::::::::::::::::::::::::::::::::::::::::/ ノ/ __,'''i: ('''__):::l
)::::::::::::::::::::::::::::::::::::::::::::::::::/  ̄ ̄ン:. :「 ̄`ヾ
1:::::::::::::::::::::::「 `┤l:::::::::::::::::l  ̄ , ヽ ̄ l
`l:::::::::::::::::::::ヽ :l li:::::::::::::/ ヽ /´ `l |
ヽ::::::::::::::::::::::\_」 lヽ::::/ .l !:-●,__ ノ /
ノ:::::::::::::::::::::::::::ノ | l `゙゙ i ,,;;;;;;;;;;;;;;;;;;;;, /ヽ
,/ ヽ::::::::::::::::::::::( l l::::::::.. /.:''/´ ̄_ソ / `ヽ
ヽ:::::::::::::::ヽ | l:::::::::::... /::// ̄ ̄_ソ / \ ヴッ!!
ヽ:::::::\| l::::::::::::::::... / :::.ゝ` ̄ ̄/ / ヽ
ヽ:::l l:::::::::::::::::::..  ̄ ̄;;'' / ヽ
l l;;;;;;:::::::::::::::.....;;;;............;;;;;;''ノ l
l l '''''''''''''''''''''''''''''''''''''' ̄l | |
http://www.youtube.com/watch?v=z2qK2lhk9O0
56 :
名無しさん@そうだ選挙にいこう:2014/12/25(木) 17:57:20.37
Excel2010使い始めて1週間たったけど
なんだよこのリボンとかいう機能
おれのWXGAのディスプレイの1/4を占拠して邪魔だよ。
嗚呼、Excel2000に戻りてぇ戻りてぇ。
60 :
名無しさん@そうだ選挙にいこう:2014/12/27(土) 11:53:44.92
例のActiveXオブジェクトを無慈悲に無効化する
セキュリティパッチの修正ってまだ?
今のところ、俺がマクロ埋め込んだEXCELツール2ファイルだけで
済んでるが、windowsアップデート切るわけにいかず毎日内線受けては
KBなんちゃらを消しに行くのに疲れた。消し方をメモで残しても、普通の従業員には
理解できないからね。今は複合機のサービスマン状態。
この現象、世界的には全く問題になってないの?
64 :
名無しさん@そうだ選挙にいこう:2014/12/28(日) 15:28:05.49
ActiveXいまだに使ってるのって韓国だけだろ
【1 OSの種類 .】 Windows8
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
一つのファイルに一年分のシートを作っています。
年次が変わる際に、白紙のシートからコピーして
同一ファイル内に新しいシートを作るのですが、自動化したいのです。
例えば今なら、「原本」という名前のシートから12枚新しいシートを作り
さらに、順に「2015年01月」〜「2015年12月」とシートに名前をつけることは
できないでしょうか?
>>65 できるけど手作業の方が早い
気合入れて「マクロの記録」を覚えた方が早いぞ。詳細はぐぐれ
67 :
名無しさん@そうだ選挙にいこう:2014/12/28(日) 19:00:19.60
年に1回の作業なんだからそれくらい手でやればいいのに
つかwin8に2kとか釣りじゃ?
12回なら手でやる方が早い
71 :
名無しさん@そうだ選挙にいこう:2014/12/29(月) 08:28:00.08
オートシェイプの「オート」ってどういう意味なんですか?
>>67,
>>70 年一回だと色々忘れちゃうから結構時間かかったりするし w
まあ、マクロでやるしかないから VBA 覚えるか、知ってそうな奴に頼めばいい →
>>65 >>71 それ秋田
73 :
名無しさん@そうだ選挙にいこう:2014/12/29(月) 09:00:48.29
あなた自分だけが世界の中心と思ってないか
74 :
名無しさん@そうだ選挙にいこう:2014/12/29(月) 09:04:37.44
手じゃなくて足でやってもいいんじゃないか?
>>72 えっ、今の所もう既に原本があってそれを12枚複製してシートの名前変えるだけでしょ?忘れるもクソもないし時間もかからないじゃないの
マクロでやる意味ないでしょ
76 :
名無しさん@そうだ選挙にいこう:2014/12/29(月) 09:49:38.93
>>75 > 忘れるもクソもないし
それしかしてないならそうかもな w
他に何かやることがあるならそれも書いてもらわないとわからないよ
あとは原本にやり方でもメモしとけばいいじゃないよく知らないけど
: _,,,,,,,,,、 .._,,,,iiiillllii、
lllllllllllllllliiiiiiiiiiiiilllllllllllllllllllli、 .,,,,ii,,ii、 ,,,,,,,,,,,,、
゙゙゙!!llllllllllllllllllllllllllllllllllllll!゙゙゜.,iilllllllllllli、 .,,iillllllllllllllllii,
`゚゙゙゙,lllllllllllll!゙゜ ,illlllllllllllllllliiiii,,,、 ,iiiiillli,,iiill!゙ ̄`゙llllllllllli、
,,iiiillliillllllllll!゙゙° ,lllllllllll!!゙゙゙゙゙゙゙llllllllll,、 .lllllllllllllll゙′ ,,illllllllllllll
゙llllllllllllllllliiii,,,,, ,llllllllllll′ ,iilllllllllll′ lllllllllllllll、.,,,illllllll!!!!゙゙゙
: .゙゙゙゙゙!!!!lllllllllll" .゙゙!!llllll! .,iillllllllllll! ゙lllllllllllllllllllllllllllll!"
゙゙゙゙゙゜  ̄,,illllllllll!゙″ `゙゙゙!!lll!l.゙゙゙゙゙゙゙゙゙′
,,,,llllllll!!゙`
,lllllllllll゙
.,,,,,,illll!!゙~゛
llllllll!l゙
年1回しか使わないマクロとか存在自体を忘れる
【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
「空白セルの場合は『ここに入力してください』という文字が表示され、
文字を打ち込んだ場合はその打ち込んだ文字が表示される」、
ようにさせたいです。
セルの書式設定→ユーザー定義
を用いてなんとかしようといろいろ試したのですが、
「[=0]"ここに入力してください";G/標準」
(セルは空白ではなく、事前に0を入力しておかなければならない)
というところまでしかできませんでした。
「空白の場合、特定の文字を表示させる」ということができますでしょうか。
どなたかご教授いただければ幸いです。
>>81 「入力規則」の「入力時メッセージ」を設定するとか。
>>82 ありがとうございます。
コメントや入力時メッセージも活用してみようと思います。
>>83 ありがとうございます。
プレースホルダーと言うんですね、知りませんでした。
簡単なユーザー書式の書き方も教えていただき感謝です。
レイアウト的に細くする作戦も難しいので、
今回は0を使って表示をさせてみようかと思います。
エボラ、陰性で安心しましたw
「0;-0;"ここに〜",@」
だな
Office for Mac 2011を使っているんですが、参照の切り替えをcommand+Tではなく、他に割り当てることはできますか?
ショートカットキーのユーザー設定に参照の切り替えとか絶対参照とか相対参照という言葉では出てこないので、どこで変更すればいいかわかりません。
もし可能でしたら教えてください。よろしくお願いします。
87 :
名無しさん@そうだ選挙にいこう:2014/12/30(火) 18:58:39.77
>>86 ここにmacのExcel使ってる人いればいいけど、
居なかったら、macの掲示板で聞いてみた方がいいかも。
88 :
名無しさん@そうだ選挙にいこう:2014/12/30(火) 19:14:48.14
>>71 おそらく、「それ自体で機能を有して動けるもの」を
auto-なんとか
というので、そんな意味合いだと思うよ。
特定の日付がきたら自動的にセルないの数式を変更することが出来ますか?
たとえばA1=E1となっているものをA1=Q1みたいな感じにしたいのですが。
>>89 ファイル開いた時ならこんな感じ。thisworkbookに書いてね
Private Sub Workbook_Open()
If Day(Date) = 15 Then
Cells(1, 1) = "=q1"
Else
Cells(1, 1) = "=e1"
End If
End Sub
あけおめ
92 :
【大吉】 :2015/01/01(木) 01:47:17.59
ことよろ
あけ おめこ とよろ
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
eドライブに画像ファイルを入れており、次のような階層になっています。
e:\2014
├ \1月
| aaa.jpg
| aaa.nef
├ \2月
| bbb.jpg
| ccc.jpg
| ccc.nef
├ \3月
| eee.jpg
| fff.nef
これらの中から、*.nef だけを削除するには、どうすればいいでしょうか?
上記の例でいえば、aaa.nef、ccc.nef、fff.nefだけを削除したいです。
cd /d e:\2014
del /s *.nef
Set WSH = CreateObject("WScript.Shell")
Set wExec = WSH.Exec("%ComSpec% /c cd /d e:\2014")
Set wExec = WSH.Exec("%ComSpec% /c del /s *.nef")
98 :
95:2015/01/01(木) 10:20:01.35
恥ずかしい><
99 :
名無しさん@そうだ選挙にいこう:2015/01/01(木) 10:48:39.96
初い奴よのぉ〜
101 :
94:2015/01/01(木) 13:39:19.98
102 :
名無しさん@そうだ選挙にいこう:2015/01/01(木) 16:07:29.26
>>101 質問が「ワケワカラン」なんですよ。
なぜExcelのスレに投稿してんだろう・・・?と。
でもExcel関係ないけど、親切心から返事してあげよう
ってな感じでしょう。
フリーソフトの方が簡単で、バカでも扱えるぞ
ファイラー フリーソフト
でぐぐればok
今もあるかは知らんが・・・多分あると思うが・・・
105 :
【大吉】 【1474円】 【東電 81.1 %】 :2015/01/01(木) 21:40:03.84
endif と打つと End If になるのに、endwith と打つと endwith のままなのは何故なんだぜ?
>>105 予想だけど
endifは予約語で、自動的にend ifに変換されてるっぽい
endwithは予約語じゃなく普通に変数として使えるからそれじゃないっぽい。
この機能に名前とかあるんかね〜
なんかC言語のマクロ定義っぽい感じはするんだけど
Go ToもGoToに変換されるよ
94です。
一応、報告です。
アドヴァイスどおりフリーソフトを探し、seldel.exeというのを使いました。
Windows7 64bitでも難なく動作しました。
新年早々すみません。
凶でワロタ。乙
つーか、普通にWindows標準の検索で「e:\2014」以下を「*.nef」で検索して、
列挙されたものを削除すれば済む話だよね
視野が狭く、「削除」ってことばかりに捕われてると、「検索」すれば事足りるってことに
気付かないのかも知れないが、毎日何度も行うような作業ならまだしも、
質問の内容からして削除対象が月別フォルダ内に1個ってことは、多くても月1の頻度なわけで
専用ソフトまで入れて行う程の作業じゃないでしょ
数十秒でササッと
>>96みたいなバッチを書けるなら、そっちの方が有効ではあるがな
111 :
名無しさん@そうだ選挙にいこう:2015/01/03(土) 15:25:06.70
nefというのはデジカメのRAWファイルだから、
1つのドライブ(HDD)なら、削除対象は
それこそ数万単位だろうね
月別フォルダに1個というのは例だろ?
本当に1個なら、AA使って質問する間に
削除できると思うよ
>110のような馬鹿には高度な話で
理解できないかな?(苦笑
月に数万単位で写真を撮るってことは、プロだよね?
プロなら写真のオリジナルデータを消すなんてこと自体があり得ない。
そもそもjpegと同じ階層にオリジナルを置くこと自体が不自然だよ。
加工後のデータは、ドライブ自体を別にするのが普通だし。
これは全然高度な話じゃないけど。
上から目線で突っ込んだつもりが恥さらしただけという結果に
プロからもらった写真の整理という可能性もある
ヘタに考えても仕方ないぜ
どうせ現実はオレたちの予想の斜め上を行っているから気にしないで良い
94です。
解決済なので、もういいですw
111さんが書かれたように、デジカメのファイルで、jpgとnefを一緒にしています。
撮影後に2ヶ所のドライブへバックアップしていますが、PC内蔵のHDDには
jpgだけを残し、容量を食うnefだけ削除したいという意図でした。
月に数万なんて撮りませんが、3日で1万枚とかはよくあります。
昨年の世界選手権大会などは3日で1万7千枚撮りましたが、珍しくはないですよ。
ただ、1万7千枚撮っても、残るのは10分の1以下ですがw
高度w
117 :
名無しさん@そうだ選挙にいこう:2015/01/04(日) 12:16:00.86
=IF(SUM(D3:F3)<>0,1,0)+IF(SUM(G3:I3)<>0,1,0)+IF(SUM(J3:L3)<>0,1,0)+IF(SUM(M3:O3)<>0,1,0)+IF(SUM(P3:R3)<>0,1,0)
というのを、31日分繰り返すとして、足し算なんか使わず小さく恰好良くまとめる方法ってありますか?
サムプロダクトかな?
>>118 サムプロダクトを使えば小さくまとまりそうですか?
>>119 うーん、sumifsとかcountifsもあった気がするけど、3列のどこかしらが0じゃないならフラグ1を立てるのなら、やっぱりsumproductかなあ。それかsum/sumで0か1になるかな?
俺もよくわかってないから出来ないかもしれないし、できるかもしれない。sumproduct難しいけど調べてみて。
仮にsumproductでできたとしたら、文字数は1/2〜1/3程度になるのかな。俺ならIFのままにしとくかな。31日程度なら、うん。
>>117 これってまとめられんのかねぇ
vbaばっかり触ってるとfornextしか思い浮かばなくなる
=sum(SUM(D3:F3)<>0,SUM(G3:I3)<>0,SUM(J3:L3)<>0,SUM(M3:O3)<>0,SUM(P3:R3)<>0)
>>119 ごめんsumproductわからないや
>>121 trueの数をsumするのか。頭いいなあ
If
>>110 =
>>12 Then MsgBox "アフォすぐる"
コンパイルエラーになってしまいます。
どこがマズーでしょうか?
二重に間違っててアフォすぎるw
余程悔しかったのかな?
照明ウゴカスナー ←NGワードに入れとけ!
すまん、誤爆…w
アフォとか久しぶりだなー
おっさん風邪ひかないように今年も頑張れよ
129 :
名無しさん@そうだ選挙にいこう:2015/01/05(月) 19:26:21.76
csv であるが、各データはダブルクオテーションで囲むというのはどのように保存すればいいでしょうか?
"a","b",…ってことだろ
保存前にそのような形式にすればいいだけ
130の回答の意味が分からない
133 :
名無しさん@そうだ選挙にいこう:2015/01/05(月) 22:43:25.99
>>132 成功したならVBAを使った、ということです。
そもそも129の質問の意味がw
CSVを吐き出したらダブルクォーテーションが入っていて、それを保存するのか、
各セルに入ったデータをダブルクォーテーションで括ってCSVとして保存したいのか、
あるいは・・・
135 :
名無しさん@そうだ選挙にいこう:2015/01/06(火) 00:03:44.47
あるいは・・・
何?
あるいは・・・
クォーテーションをCSVとして各セルに入ったデータとして保存したいんです
日本語とコミュニケーション能力の両方に問題があるようです。質問者と回答者の双方に。カオスすなあ
139 :
名無しさん@そうだ選挙にいこう:2015/01/06(火) 03:18:19.26
OfficeのライセンスでデスクトップとノートPCにインストール出来るみたいだけど、どこでノートPCって分かるの?
デスクトップ二台でもバレないかな?
>>139 システム情報を見ればパソコンの機種はわかるけど、Officeは厳密には調べてないと思われる
>>139 最近は主に使う二台ってライセンスだったはず
ノート・デスクトップに限定されない
Excel2013を使用しています。
メールでもらったxlsmファイルがあるのですが
セキュリティーセンターですべてのマクロを有効にするをチェックしていても
ボタンに割り付けたマクロが実行されません。
開発でボタンにマクロが書かれていることは確認しました。
マクロの1行目にMsgBoxを書いてもダイアログが表示されません。
自分で作ったマクロは実行されます。
メールでもらったxlsmファイルをマクロ含めてコピーして
新規ブックに張り付けていくと実行されます。
メールでもらったxlsmファイルのマクロを実行するには
どのようにすれば良いのでしょうか?
他の人に、このメールのxlsmファイルを開いてもらったらマクロは動きました。
excelファイルを開いた時、標準モジュールはauto_open()でないと実行しない、、ぞ
どんどん話がそれてく
148 :
名無しさん@そうだ選挙にいこう:2015/01/06(火) 21:30:39.00
自動マクロ実行は
標準モジュールauto_open()に書くと、シートモジュールのイベントプロシージャに書くのでは
どっちが好ましいですか?
イタズラ目的ですか?
>>148 別にどっちでもいい
あと自動実行ならVBSの方が楽だよ
>>150 どっちでもいいならアーキテクチャ(開発思想)を無視する発言
>>148 vbaの実行は用途に応じて、、と思われる
excel開いた時の初期設定は自動が良いし、シートに移ったらイベントルーチンに任せれば良いし
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 すこし
【4 VBAでの回答の可否】 可
B3セルの中心点からC2セルの中心点までをオートシェイプでラインを引こうと思っていますが
Left, Top, Width, Heightの設定がうまくいきません
サイトなどを参考に、下のLeft, Top, Width, Heightに*2、/2など入れてみましたダメでした
Shapes.AddLine(Range("B2:C3").Left , Range("B2:C3").Top, Range("B2:C3").Width , Range("B2:C3").Height ).Line
セルの左側はLeftだけど、セルの右側はWidthではなくLeft + Widthだよ
下もTop + Heightで、中心点ならLeftやTopにプラスするのをWidthやHeightの半分にすれば良い
Leftが左、Widthが幅という中学生並みの英語力と、小学生並の算数力があれば
VBA分からなくてもこのくらいは理解できるはず
またクソみたいないらん事言い出したか
155 :
152:2015/01/07(水) 00:34:58.52
レスありがとうございます
ですが、すみません考え方が悪いのか理解できませんでした
例えば全セルが1*1cmだったとすると
Range("B2:C3")セルのLeftは左面なので2セルで2cm、Topは上面なのでこれも2セルで2cm
Heightは高さなので同じく2セルで2cm、Widthは幅なのでこれも同じく2セルで2cm
という考え方ではないんですよね
>>155 セルの中心から線を引きたいならその方法じゃダメ
セル範囲じゃなくてセルを1個ずつ指定する
具体的にはこうする
Set B3 = Range("B3")
Set C2 = Range("C2")
ActiveSheet.Shapes.AddLine B3.Left + B3.Width / 2, B3.Top + B3.Height / 2, C2.Left + C2.Width / 2, C2.Top + C2.Height / 2
セルの端から線を引くなら範囲指定が使える(場合がある)
Set Ra = Range("B3:C2")
ActiveSheet.Shapes.AddLine Ra.Left, Ra.Top + Ra.Height, Ra.Left + Ra.Width, Ra.Top
>>156 ありがとうございます
上のやり方なら理解できたので2つに分けて考えるやり方で行こうと思います
本当にありがとうございました
158 :
142:2015/01/07(水) 14:32:49.47
>>145 2013用のKB2726958が更新プログラムの中に見当たりませんでした。
クイックインストール?されていると表示されない。みたいなことを
書いてるのを見かけたので、たぶんそれだろうと思います。
*PCレンタル時にOfficeは最初からインストールされてました。
>>145さんが紹介してくださったページ内のアンインストールできない場合を
見ましたが、フォームコントロールのボタンを挿入し、その中にマクロを書くと
実行できました。
ActiveXのコントロールがダメなのかな?
でも、自分のPCで新規ブックを作成して、ActiveXのコントロールを挿入すると
ちゃんとマクロは動くので・・・ちょっと分かりません。
マクロを張り付け直すかフォームコントロールにするか考えてみます。
>>158 ActiveX関係の例の極悪パッチは問題になってるね。
アンインストールすれば動くようになるよ。そのパッチをね
>>158 原因はActiveXコントロールで間違いない。
同じPCなのに動く奴と動かない奴があるのは俺も体験したわ。理由は不明。
作り直せるなら作りなおしたほうがいいと思う。
ActiveXの件、パッチをアンインストールしてもダメな場合があるらしい
今んとこ
C:\Users\(ユーザー名)\AppData\Local\Temp\Excel(バージョン)
フォルダの中の
MSForms.exd
を削除するのが確実と言われてる
うちはこれで直った
パッチは削除してない
MSForms.exd
の入ってるフォルダはもう一つあった
C:\Users\(ユーザー名)\AppData\Local\Temp\VBE
Excelを再起動すると再作成されるけど、削除は1回だけで大丈夫
Excelどうこうの前に、エクスプローラーとかのファイルのプロパティでブロックの解除してないのかもね
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel ver.14
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
表は下記のような感じで作っているんですが、
読了本のリスト作成で年毎に読んだ冊数を●部分にそれぞれカウントしたいんです。
どんな関数使えば可能でしょうか。宜しくお願いします。
年 作者 タイトル
[2000][●][AAAA][aaaa]
[ ][ ][BBBB][bbbb]
[ ][ ][CCCC][cccc]
:
:
[2001][●][DDDD][dddd]
[ ][ ][EEEE][eeee]
:
:
[2002][●]
日本語で質問できない人、お断り
>>164 =COUNTIF(A:A,A1)
日本語でもヒエログリフでもエスペラントでもじゃんじゃん来ていいぞ
その方が経験になるわw
3列目は空白だからいいたいのは多分こっちじゃないのか
=IF(A2=OFFSET(A2,-1,0),"",COUNTIF(A:A,A2))
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel 2010
マクロを実行してループに陥ってしまったとき、
強制終了させる方法を教えてください。
ググると、Ctrl + Pause(Break)を押下とか出てきますが、
DELLのノートPCのせいかPause(Break)キーがありません。
今は、タスクマネージャーから強制終了してますが、
それまで書いたマクロも当然ながら消えてしまいます。
ESC長押し
170 :
164:2015/01/09(金) 00:24:57.08
>>165-167 分かりづらいですか。すみません。
2000年に5冊の本を読んだ場合、●部分(下記で言うとB2)に「5」と表示させて、
2001年に2冊の本を読んだ場合は、B7に「2」と表示させたいんです。
※[ ]はセルで、[ ]内に文字列がないのは空白セルです。
C・D列にあるアルファベットは適当です。
宜しくお願いします。
A B C D
1 年 作者 タイトル
2[2000][●][AAAA][aaaa]
3[ ][ ][BBBB][bbbb]
4[ ][ ][CCCC][cccc]
5[ ][ ][DDDD][dddd]
6[ ][ ] [EEEE] [eeee]
7[2001][●][FFFF] [ffff]
8[ ][ ][GGGG] [gggg]
9[2002][●][HHHH] [hhhh]
171 :
164:2015/01/09(金) 00:35:22.61
度々すみません。大事な事を書き忘れていました。
今年分はまだ始まったばかりで冊数が確定していないので、
現時点で入力済みの冊数を表示する場合の関数も知りたいです。
ループする単純なマクロ教えて(はぁと
>>168 別のキーボードで操作する
USBのキーボードを外付けするとか、スクリーンキーボードを使うとか
あるいはCtrl+Breakを発行するアプリを使う
フリーでキーボード操作を再現できるやつがある
>>172 Sub a()
Do While 1: Loop
End Sub
>>172 Sub test()
Dim counter
counter = 1
Do While counter < 10
Cells(1, 1).Value = counter
MsgBox "ループは " & counter & " 回目"
counter = counter + 1
Loop
Cells(1, 1).Clear
End Sub
>>170 b2=IF(A2="","",COUNTIF(E:E,A2))
e2=LEFT(IF(A2<>"",A2,E1)&C2,4)*1
こんな感じで下にオートフィル
countif(left(a1:a10000&c1:c10000,4),a2)
こんな感じで配列定数がやりたかったけどダメだったよ・・
>>176 Do: Loop
はCtrl+Breakで止まらない
Do While 1: Loop
Do: n = 1: Loop
みたいに、何か処理を入れる必要がある
179 :
名無しさん@そうだ選挙にいこう:2015/01/09(金) 12:15:18.01
【1 OSの種類 .】 Windows8
【2 Excelのバージョン 】 Excel 2011
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
A B C
15/1/3 Sat 出勤
15/1/4 Sun 出勤
15/1/5 Mon 休日
15/1/6 Tue 休日
15/1/7 Wed 出勤
となってる表があります。BはAからaaaで自動的に記載されてます。
曜日ごとに休日の数を数えたいのです。よろしくお願いします。
合計 月曜の休日 ○日
合計 火曜の休日 ○日
合計 水曜の休日 ○日
みたいに
>>179 最初に思いつくのは作業列を曜日ごとに7列使い休日なら1にして合計
>>170 >>164 こんなのどう?
B2,B7,B9 へ
=COUNTA(OFFSET(C:C,ROW()-1,0,ROWS(C:C)-ROW()+1))-SUM(OFFSET(B:B,ROW(),0,ROWS(B:B)-ROW()))
>>170 B2: =IF(C3="",1,IF(A2<>"",MATCH(A2+1,A:A,0)-ROW(),""))
>>181 >B2,B7,B9 へ
意味無いじゃんw
B2からオートフィルだろjk
>>182 一見良いけどねwww
ピボットとかで簡単にできそうだけど。
185 :
181:2015/01/09(金) 12:56:05.23
>>183 >意味無いじゃんw
いみあるよ
>B2からオートフィルだろjk
やってみな 全部1になるからwww
186 :
名無しさん@そうだ選挙にいこう:2015/01/09(金) 12:56:08.15
>>180 D1に IF(C1=休日,D1=1,D1=0)な感じでしょうか。
A B C D
15/1/3 Sat 出勤 0
15/1/4 Sun 出勤 0
15/1/5 Mon 休日 1
15/1/6 Tue 休日 1
15/1/7 Wed 出勤 0
合計 月曜の休日 sum(D1:D30) 日みたいな?
>>185 >やってみな 全部1になるからwww
だからダメなんだよwww
その理屈だと
B2=5
B7=2
B9=1
でも良いだろwww
>>186 D列を日曜日専用にし
IF(B1=Sun,IF(C1=休日,1,0),0)
同様にE列は月曜・・・
>>179 D1に、=IF(C1="休日",WEEKDAY(A1),"") 下にオートフィル
合計 月曜の休日 =COUNTIF($D:$D,2)
合計 火曜の休日 =COUNTIF($D:$D,3)
合計 水曜の休日 =COUNTIF($D:$D,4)
日曜が1、月曜が2、・・・土曜が7
>
>>179 俺ならaaaと休日を&かなぁ
d1=text(a1,"aaa")&c1
これで
e1=countif(d:d,"sun休日")
e1=countif(d:d,"mon休日")
みたいな感じで数えれば楽ちんちん
>>171 作業列使うけど
E2 =IF(OR(A2>0,C2=""),0,1) 下にコピー
B2 =IF(AND(C2<>"",E2=0),MATCH(0,E3:E1000,0),"") 下にコピー
>>182が大きなヒントになった
>>192 ワークシートが保護されてますね。
バイナリエディタとか使えば解除できるかもね。
>>192 住所などの項目だけなら普通に編集できるけどな
それ以外の場所も編集したいの?
感覚的に分かりやすく、これ
>>189でいこうと思いました。
ありがとうございました。
>>192 使いまわしたいならシート丸ごとコピーして他のブックのシートに貼り付ければ良い
>>193 申込書に記入できないわけないだろwww
昔はシートごとコピーか何かでいけたと思うけど、2010だと無理になってるな
CTRL+Aが効かない
行と列を表示し交点(A1の左上)をクリックすれば全選択出来ると思う
採点するに足る能力も持ち合わせてないのに
採点して(採点したつもりになって)悦に入ってる奴って滑稽だなw
テストで70点分の間違いを犯して30点しか取れない奴が採点すると
本来30点のそいつが100点で、本来100点のはずの奴が30点扱いになるんだぜ
って言っても理解できないかな?
>>178 > Do: Loop
> はCtrl+Breakで止まらない
そんな要件あったっけ? w
は、冗談だけど、これは知らんかったわ
処理と言うか
Do
Loop
って二行に分ければ大丈夫なんだな
2000だと関西電力も難なくコピーできるな
鯖落ちのためにレスが遅くなってしまいました。
>>181さんのは全てに上手く反応してくれました。
>>182さんの関数も反応してくれましたが、今年分が####となってしまいました。
>>177さん・
>>191さんや他にレスをくださった方もありがとうございました。大変助かりました。
>>181 は反則技だと思うけど
データ入力後に数式設定するなんて本末転倒でしょ
>>208 君の気持は痛いほど分かる。
しかし、実務と理想は全く違う。私もわかったつもりでいた。何度も洗礼を受け続けた。
もしエクセルを通じて人の役に立ちたいというなら、この現実を受け入れるしか無い。
能力、経験が低かったと反省しなければならない。
私は
>>177。
それなりにこなれて、行きずりの
>>200に褒められて、少しいい気になっていた。
自分ルールの「反則」や、「本末転倒」は、現実の前には無力。
相手に合わせることのできなかった自分の無力さを恥じ、精進しよう。
ほんま、ありえへんけど、がんばろう・・・
そう、会社や舞台によって正解は変わり、うつろいゆく
あなたの舞台では、それは正解になります。
それで満足なら、それで良いと思います。
>>208 実務だと電卓たたきながらエクセル使う奴だって居るから
その同類って事で許してやれ
>>209 177も未入力行に数式設定するとダメだから181をフォローするよなw
未熟者どうしキズを舐め合ってろ
誰の肩も 持つつもりもないが
>>164さんへの具体的な回答・指南しないで語ってるのやつは
未熟者以下ってことだな
自演に回答なんてしねーよ
俺は必要条件が出そろわなければ回答しない
必要条件が出そろう前から早漏回答者が先走って、そのうちのどれかが質問者の望みに合えば結果オーライ
別にここで回答して感謝されることだけが生き甲斐の人たちとは違うので、それならそれで良し
早漏回答が当たらず、早漏回答者の先走りと、稚拙な質問者の条件後出しが繰り返されることによって
必要条件が出そろった上で、早漏回答者達では手に負えないようなら手を差し伸べる
>>216 > 俺は必要条件が出そろわなければ回答しない
なんの条件もないのにいきなり一人語りし始める奴の言うことじゃないわな w
見えない質問に条件がそろったんだな
間違ってもいいから高速でとにかく回答する奴
遅くても正確に回答する奴
あれ、良スレじゃね・・・?
たまにExcelは上手なんだろうけどアスペなのかと思うぐらい会話できない人いるよね
なるべく早くデカい病院行けって言ってんのに全然治んねーんだよな
もう手遅れで病院から書き込んでる可能性まであるわ
アスペは病気では無いし治ったりしませんよ?
それと気に入らないレスに何でもかんでもアスペとかでなくてさ、内容に沿った事言いましょうよ。アスペぢゃないんだからさ。
>>219 間違った解答にも勉強になる部分もあるので
オレは全ての回答者に感謝する
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
A1氏名 B1売上 データは2行から100行弱入っています
氏名は50音順に並んでいます
空白セルはありませんが売上にはマイナスや0も含まれます
AとB列のデータからベストテンを、D列に順位 Eに氏名 Fに売上を表示したいのですが
1、同点時の表示は50音順とし1位が二人なら2位は欠番で次は3位とします
2、10位が同点だと表示人数は10名を超える場合もあり
極端な例だと全員が0の場合は全員が1位で全員を表示させる
よろしくお願いします
>>224 順位はRANK関数で求められる
同点の場合もちゃんと考慮してくれる
(1) A、B列のデータをE、F列にコピー
(2) D列にRANK関数を入れる D2=RANK(F2,F:F)
(3) DEF列を選択してソート、この時最優先されるキーをD列、次をE列に設定する
(4) 11位以下を削除
>>225 レスありがとうございます
言い忘れまして申し訳ありませんが
A、B列はソートされては困ります
>>226 また言い忘れた
入力はエクセル知らない物が行うので
最初に数式を百行まで設定しといて入力するだけで結果が出ないと都合が悪いのです
よろしくお願いします
228 :
名無しさん@そうだ選挙にいこう:2015/01/12(月) 07:24:55.69
ピボットテーブルで
チョット面倒だが作業列使えば数式で出来そうなので今夜帰宅してから考え深夜に上げる予定だけど
素晴らしい回答があれば上げないw
D列にRANK関数を入れる D2=RANK(F2,F:F)
E2に=IF(C2<11,A2,"") 以下100行コピー
F2に=IF(C2<11,B2,"") 以下100行コピー
どんどん条件が出てくるなw
226、227はオレから見れば言うまでもない事だと思う
未熟者は使う人を無視し自分の駄作を見せたがるwww
>>226 列を選択してソートの場合、選択されてない列はそのままにできるよ
数式だけでやろうとすると、ROWとLARGEとRANKの組み合わせになるかなあ
考えるのが面倒だわ
どうせ追加の条件がまた出てくるから、今回答しても無駄だよ
236 :
名無しさん@そうだ選挙にいこう:2015/01/12(月) 12:08:52.71
>>227 「Excelを知らない者」がどうやってA列をソートするんだ?
結局、奴が言ってたことが正解か
>>239 224はエクセル2000だよ
自分勝手なヤツばかりだなwww
>>236 面白いなオマイさんwww
エクセルの入門書くらいは読んどけwww
>>243 241だけどチラッと見ただけだが
一位が二人にならない
五十音にもなってない(フリガナは足さずに引かないと)
それ以外は未検証
>>245 詳しくは見てないけどイイみたい
オレも出来た
>>224 d2 =IF(RANK(I2,I$2:I$100,0)<11,RANK(I2,I$2:I$100,0),"")
e2 =IF(D2<>"",OFFSET($A$1,MATCH(H2,G$2:G$100,0),0,1,1),"")
f2 =IF(D2<>"",I2,"")
g2 =B2-ROW()/10000
h2 =LARGE(G$1:G$100,ROW()-1)
i2 =ROUND(H2,0)
各列の数式100行までオートフィルしてG、H、I列は作業列なので非表示に
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 勉強中です
【4 VBAでの回答の可否】 可
入力フォームにコンボボックス1の値によってコンボボックス2の値が変わるやり方は調べて判りました
しかし、同じ処理を行うコンボボックスが複数ある場合、どのようにすればよいか悩んでる状態です。
コンボボックスsectionとmemberが6つまであり、それぞれに連動した処理にしたいのですが、
section2_Click() section3_Click()・・・と同じ処理を複数作ってくのはソースが乱雑になるので
スリムにしたいのですが、どのように処理すればよろしいでしょうか・・・
Private Sub UserForm_Initialize()
For i = 1 To 6
With Controls("section" & i)
.Clear
.AddItem "○1課"
End With
Next
End Sub
Private Sub section1_Click()
With member1
.Clear
Select Case section1.List(section1.ListIndex)
Case "○1課"
For i = 2 To 7
member1.AddItem Worksheets("社員情報").Cells(i, 1).Value
Next
End Select
End With
End Sub
>>247 例えば最初のコンボボックスで営業部を選ぶと次のコンボボックスには第一営業課、第二営業課とかには出来るんだよね?
同じように次のコンボボックスには各課の氏名を表示すれば良いんじゃないの?
何で六個も必要なのかな?
もし入力作業だけならばVBA使わなくても出来そうだけど
>>248 レスありがとうございます
なぜ複数必要一つの項目に複数人関わってくる場合があるためです
そのため、一つの売上に関わった人間とその売上を記録できるものを作りたかったのです
去年までは直接EXCELに打込んでいたのですが、だんだん重くなってきてしまい、
Accessへの移行を踏まえ、VBAの勉強をしたいなと思い、挑戦した次第です
A1セルがAかつB1セルがBならC、A1セルがAかつB1セルがDならEの条件の時にAを繰り返し書かずに済む方法ってないですか?
現状は、
if(countifs(A1,"A",B1,"B"),"C",if(countifs(A1,"A",B1,"D"),"E",""))
みたいな表記にしています
EXCELのバージョンは、2007です
この例ならまだ楽ですが四つ五つに条件が増えていくと条件変えろと言われたときに対応しきれなくて
>>247 クラスを使って疑似的なコントロール配列を作る
詳しくは「疑似 コントロール配列 VBA」とかでググれ
>>250 条件に対する対応表を作って、「A1&B1」や「A1&","&B1」等を条件にVLOOKUP
初心者は対応表や作業セルを嫌がることもあるが、「条件変えろ」と言われた時は
式とは別に対応表を組んで置いた方が、式はそのままで対応表だけ書き換えれば良いから修正が楽
>>250 そういう式は、段階的に書いた方が短くなる
=IF(A1="A",IF(B1="B","C",・・・
もっと複雑な条件式の場合は作業列を使う。方法は色々あるけど、たとえば
作業列=A1&B1として、
=IF(作業列="AB","C","")
みたいに判定するとか
>初心者は対応表や作業セルを嫌がることもあるが
あるね確かに
あと数式の文字数が少ないほうがカッコイイと思い複雑な関数使いたがる
まず、IFとVLOOKUPを使いこなし他人が見ても判りやすい作業列を作れるようになるべき
次に、IFの中にOR、ANDを使うとネストを減らせ可読性が上がると思う
>>229 だけど
回答あるから辞退すると言いたいが実は出来なかった
永遠の初心者ってゆうかセンス無いんだな循環参照とか
>>245、
>>246 よろしかったらエクセル暦と学習方法やコダワリ等のアドバイスを頂ければ有難いのですが
>>245 >>246 思い通りの動作で感動です!
有難う御座います
数式が複雑で理解できないので勉強しなくては
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 不可
【4 VBAでの回答の可否】 否
質問1:
Excel97におけるifの入れ子制限ですが、
ifなしの(条件式)*nでFALSE=0・TRUE=nを出すのも入れ子1回になりますか?
例えば
=if(A10>5,0,(B10>10)*3)
としたら、ifの2重入れ子扱いになるかどうかなんですけど
質問2:
=if(A10>5,0,if(B10>10,3,0)+if(C10>0,C10,0))
は、他の言語では2重入れ子が2個所にある状態となりますが
この場合ifの入れ子は2つ扱いでしょうか?
それとも3つ扱いになるのでしょうか?
自分はExcel2010+Win7なんですが、Excel97+WinXPの人でも使える
複雑な計算を多用したシートを作らないといけないので
よろしくお願いします
>>257 ありがとうございます
>>258 レスありがとうございます
まあ、作業列は作ってるんですが、作業列がないと60重〜100重式くらいになるのを
結構分割して入れ子制限ギリギリかオーバーなので
>>259 ギリギリかオーバーってあんた、オーバーしたらアカンがな
そんなもん作業列を60列〜100列作ればええんやで
シート1枚で足りんかったら作業シートをなんぼでも作ればええ
261 :
名無しさん@そうだ選挙にいこう:2015/01/13(火) 17:49:56.59
HTMLから
Excelファイルの指定した「シート」にハイパーリンクを貼る方法はありますか?
>>247 vbaのイベントハンドラうんこだわ。
クラス作ってやる方法もあるみたいだけどちょっとめんどくさすぎた
https://sites.google.com/site/compositiosystemae/home/vbaworld/middle/classdeverop/commonevent Private Sub UserForm_Initialize()
For i = 1 To 2 'tesutoよう。2にしてるよ
With Controls("section" & i)
.Clear
.AddItem "○1課"
End With
Next
End Sub
Private Sub section1_Click() '7個作る
Call a
End Sub
Private Sub section2_Click() '7個作る
Call a
End Sub
Function a()
num = Replace(Me.ActiveControl.Name, "section", "") '数字を取得
With Controls("member" & num)
.Clear
Select Case Controls("section" & num).List(Controls("section" & num).ListIndex)
Case "○1課"
For i = 2 To 7
Controls("member" & num).AddItem Worksheets("社員情報").Cells(i, 1).Value
Next
End Select
End With
End Function
>>254 246だけど
初心者は多くの関数を使わないほうがセンス磨けると思う
簡単な関数だけで苦労した方が絶対に上達する
246も、J2=A2とすれば、E2=IF(D2<>"",VLOOKUP(H2,$G$2:$J$100,4,0),"") で出来る
ネットで検索すれば簡単だけど身に付かないよ例え悪いがカンニングみたいなもん
ヘルプで調べる習慣をつけなければ永遠の初心者からステップアップ出来ないかもしれない
matchとoffsetがあれば大抵の事はクリアできる
>>265 offsetは重いだろ
indexにしとけ
>>251-253 ありがとうございます
対応表がやりやすそうですね
何より条件変更がやりやすそうです
VLOOKUPの使い方も勉強します
普段、INDEXを使い慣れてますが、
>>264の言われる状態の自覚ありますし
>>266 そうだindexだった
matchとoffsetでなにするんだ
269 :
名無しさん@そうだ選挙にいこう:2015/01/14(水) 01:47:06.92
matchとindexをマスターすれば便秘も治りますか?
offsetは応用範囲が広いので中級以上では必須だが
初心者には理解しにくいと思う
>>270 必須なんですか
複数列にわたる条件分岐データを合計するのに使ってはいますが、
正直普段はINDEXのほうが使いやすいななんて思ってましたが
>複数列にわたる条件分岐データを合計
あらかじめ決まった複数のセル範囲を条件により選択し合計するならINDEXだし
条件によりセル範囲の位置や大きさを可変しながら合計するにはOFFSETだと思う
>>263 >>264 有難う御座います
スポーツに基礎体力が必要なようにエクセルも基礎的なスキルが大切って事ですね
とりあえず毎日エクセルと接するように心がけます
マクロで、
x1=17 なら x2="Q"、x1=29 なら x2="AC"というように、
列の番号を列のアルファベットに変換するにはどうすればいいですか?
普通に
columns(17).address(0,0)
columns(29).address(0,0)
で、Q:QやAC:ACが取得できるから、そこから切り出せばいいだけじゃね?
計算で出したいなら、26進数作って、各桁に16進数みたいな1から始まる
「123456789ABCDEF…」 ではなく、Aから始まる
「ABCDEFGHIJK…」を割り当てれば良いだけ
任意の進数の処理方法が解らなければ、ググればいくらでも出てくる
>>274 http://support.microsoft.com/kb/833402/ja 26進数が一番早い、というかこれでいい。
cells(1,10).alphabetcolumn
みたいなプロパティがあるかと思ったけど無いのね。
で、ワークシートファンクションで何とかしようと思ったらわーくしーとgふぁんくしょんにaddressがなくて作ったのが以下だよ使わないほうがいいよ
Sub a()
b = 17
Cells(1, 1).Formula = "=Address(1, " & b & ", 4)"
Application.Calculate
c = Cells(1, 1)
For i = 0 To 9
c = Replace(c, i & "", "")
Next
MsgBox c
End Sub
>>274 x2 = Split(Cells(, x1).Address, "$")(1)
278 :
名無しさん@そうだ選挙にいこう:2015/01/14(水) 23:36:08.37
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
ひとつのブックにシートAとシートBがあります。
シートAに各種データを入力して、
シートBに条件にあうデータを抽出し、結果を○で表したいセルがあります。
データの抽出はALOOKUPで出来たのですが、
その結果をシートAの数値ではなく、○で表したいのです。
例えば、抽出したデータが100円の場合○、それ以外は空白という感じです。
どうすればできるでしょうか?よろしくお願いします。
>>278 =IF(VLOOKUP(何か)="100円","○","")
>>270 オレは気軽に使うけどな
記述が自然で使いやすいから
offset関数なんて可変範囲の指定時にしか使わないな
それ意外有効利用できる場面に当たったことがないわ
283 :
名無しさん@そうだ選挙にいこう:2015/01/15(木) 09:16:05.67
引用元のデータの作りが悪くて、行と列が逆転したテーブルが混在してる時なんかは仕方なくOFFSET使う
VBAでoffsetプロパティ多用するからoffset関数も無意識に使ってるが止めた方が良いのか?
offsetはイマイチ使いこなせなかった
288 :
名無しさん@そうだ選挙にいこう:2015/01/15(木) 15:23:30.76
>>288 設定はない
vba覚えると全自動にはできるからそっち頑張ったほうがいいと思う
>>282 説明のため無理してOFFSET使ってるから致しかたない
実務なら初心者でも判りやすいように、F1を作業セルにし
F1="A2:C"&COUNTA(A:A)
F3=VLOOKUP(F2,INDIRECT(F1),2,0)
F4=VLOOKUP(F2,INDIRECT(F1),3,0)
こんな感じで十分かと
291 :
274:2015/01/15(木) 18:54:07.30
>>276-277 ありがとうございます。
276は使わないほうがいいと書かれてたので使いません。
277は超シンプルで変換できるので、これを使わせていただきます。
使わないほうがいい というのは 使え ってことだぞw
ダチョウ倶楽部の上島が 絶対に押すなよ というのは 押せ というのと同じw
数式でのOFFSETはまだしも、VBAでOffsetやResize使わず、範囲返すのに
Range(Cells(行1, 列1), Cells(行2, 列2))
や、一つ下を参照するのに
Cells(基準セル.Row +1, 基準セル.Column)
みたいなことやってるのは、初心者というかバカっぽい
Cells(行, 列).Resize(行数, 列数)
や
基準セル.Offset(1)
の方がスッキリするし、エラーの温床にもなりにくい
Range(Cells(行1, 列1), Cells(行2, 列2))
の方式で別シートを参照する場合に、Rangeにはシートオブジェクトを付けて
Cellsには付け忘れるとエラーになるが、そのエラーの原因が分からずに質問に来る奴が後を絶たないしw
>>293 そんなプロパテーあったのか。知らんかった。とんくす
VBAのOffsetは入門書にも書かれてる基本中の基本だもんな
Resizeは配列だから初心者だと理解が難しいかも知れない
数式のOFFSETは機能的にはVBAのOffsetとResizeを足した物だから
使いこなせない初心者が悔しくてディスってるだけだろう
最初に必要になった用途に合わせて使い慣れている関数があるというだけじゃないかな
俺の場合料金表の重さと場所から値段を抽出するのに便利だったから
Indexの使い方覚えたんだし
用途に合った関数を使うのが一番なんだろうが、使い慣れている関数でもできちゃうなら
その関数を使っちゃうもんだろなんて思う初心者
だから上達しないんだが
エクセル使用者の90パーセント以上はOFFSET関数を使ってないと思う
無理に使う必要もないし恥ずかしがる必要もない
OFFSET関数使ってるから中級者でもないし
使えないと初心者という訳でもない
offset使えないなら初心者だろw
offset、今まで10年ほど使って来なかったから今度使ってみようと思ったけど、イマイチ用途が思い浮かばない
例えば俺はこういう処理が多いんだけど
for i =1 to 10
cells( i , 1).value = i '何らかの処理
next
offsetの方がいいの?
for i = 0 to 9
cells( 1 , 1).offset( i ).value = i '何らかの処理
next
>>299 > cells( 1 , 1 ).offset( i ).value = i '何らかの処理
それ分かりにくいよ
あるセルから相対的にアクセスしたい時に使えばいいだけ
>>300 やっぱりそうだよね…自分でもそう思ってました。
具体的な例とかありますか?
そういうのって関連データを2行使ってたりとか
そもそも表作りが下手くそな時しか用がないだろう
データ処理と結果表示を履き違えてる
>>301 横からですが 過去スレからコピペ
WorksheetFunction.Vlookupを使うとき
1列じゃなく2列の組み合わせで値をひっぱってきたいのですが
最もシンプルなコードではどうなりますか?
例えばA列「巨人」B列「55」C列「松井」のデータがあったとして
「巨人」と「55」の組み合わせから「松井」というデータをひっぱってきたいのです。
WorksheetFunction.Vlookupを使うから複雑になる
Offset使えば?
想像もつきませんが
どうOffsetを使うのでしょうか?
Sub 松井検索()
Dim i As Long
Dim 最終行 As Long
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To 最終行
With Cells(i, 1)
If .Value = "巨人" Then
If .Offset(0, 1).Value = 55 Then
MsgBox (.Value & "の" & .Offset(0, 1).Value & "番は" & .Offset(0, 2).Value)
Exit Sub
End If
End If
End With
Next
MsgBox ("見つかりません")
>>301 > 具体的な例とかありますか?
>>293 でいいと思うけど
口は悪いが書いてることはまともだよ
305 :
名無しさん@そうだ選挙にいこう:2015/01/16(金) 13:18:20.86
>>303 Offset使わなくてよくないか?
Cells(i, 1)、Cells(i, 2)、Cells(i, 3)と書いたほうがシンプルだ。
なぜわざわざ分かりにくく意味もなく複雑なことをするんだ?
初心者は誰でもそう思うんだがもうチョット深く考えみよう
なぜ?こういう記述なのか考えるのも
上達には欠かせないよ
>>303の例では無理して使う必要性はない
A1:A2 巨人
B1 松井
B2 55
C1 王
C2 1
のような表に使う
表自体がクソだが、初心者に限ってこういう表を作りたがる
offcetは最終行の下にカーソル持ってくるときに使ってる
〜..End(xlup).Offset(1, 0).Select
オフセットオフセット言われると
なぜだかビリーさんのワンモアセッ!を思い出してしまう
311 :
301:2015/01/16(金) 19:06:27.95
ありがとうございます、精進します。
312 :
名無しさん@そうだ選挙にいこう:2015/01/16(金) 20:45:19.08
>>303はOffset不要。
OffsetはそのRowとColumnのアドレスが相対的にしか決定できないか相対的に指定したほうがやりやすいときに使う。
>>303のアホはわざわざやる必要のないOffsetを使ってそれはダサいやりかたであることに気づいていない。
その性格は
>>306でわざわざ不要なアホな書き込みをしてさらに矛盾を指摘したら引くに引けない状態になってるのに気付いてないことに表れている。
>>312 頭から湯気たて何と戦ってるの?
サンプルのコードも挙げないで息巻いてる?
そもそも Offset プロパティの話は VBA スレでやれよ...
303は間違ってはないしダサくもないと思うよ
可読性が上がるしWithステートメントも使えるし一石二鳥じゃん
VBA厨・・・
懐かしいな、まだいたのかよw
しかも、自分の回答に自己レスする自演も健在とかw
もうねw
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 否
宜しくお願い致します
エクセルで作ったものをメールにコピーするとズレてしまいます。
メーラーはWindows Liveメールをつかっております。
例えば下記のようになってしまいます。
商品名 個数 価格 合計
???????? 25 1700 42500
????????????????????? 7 600 4200
???????????????????????? 1 1200 1200
エクセル上では整列しているのですが・・・
これをメール本文上でも整列
例えば下記のように
商品名 個数 価格 合計
???????? 25 1700 42500
????????????????????? 7 600 4200
???????????????????????? 1 1200 1200
コピーなりすることは出来ませんでしょうか?
>>312 >>307.308についての意見を伺いたい
先に言っておくと、俺は
>>307に関しては
for i = 1 to 10
cells( i, 1 ) = xx
cells( i + 1, 1) = yy
と書く派
>>308は悪く無いと思うけど0行の時に行を間違えるのがネック(普通見出しがあるけど)であまり使いたくない
>>317 HTML形式なら一発なんだが、嫌がる人もいる上、強制的にテキストで読み込む人もいる。
かと言ってテキスト形式だとかなりめんどくさい。LENなどで空白を埋めても結局は相手のフォント次第で
いくらでも崩れる可能性がある。
pdfを添付ファイルで付けてみては?
もしくはいそのことexcelふぁいるそのまま付けるか。
両方つけてもいいと思うけど。
alt+F8って使いますか?
いつの間にかALT+F11しか使わなくなっていました
また、オートサムって使いますか?
人のPC触ったらシグマのマークがあって、なにかと思ったらオートサムでした。皆さん使っているのでしょうか。
>>320 ならなかった。あとaxすげー重いな。前はこんなでもなかったのに
>>317 どちらも整列してるようには思えないんだがw
メールなんてフォントの設定次第でズレるし、エクセルからコピペしたらTABも邪魔する。
Windows LiveメールのデフォルトのフォントはCalibriなので、一般的なユーザーが
使ってると思われるMS Pゴシックともフォント幅が違うので厄介モノなのだw
ま、あまり気にするなってことだなw
>>319 それがですね、取引先がしっかり整列したメールで返してくるのです。
フォントやサイズでずれるものじゃないです。
>>324 はい、私は整列したものが作れません。
ですが取引先はしっかりと作っておりますので、何か方法があると思われます。
ただ、取引先が送ってきたメール本文をコピペしても
崩れてしまうので、こちらはこちらの様式で返答するしかなく
恐らく取引先は不便をしていると思われます。
なんとか同様式で返答したいのですが・・
>>325 html形式で送られてきて、自分はテキストで返答してるんじゃないの
もしくは逆に、テキスト形式にすれば合うのかもしれない
そんなアホな事で時間使うのもったいないからさっさとpdfにしてるけどな
>>325 エクセルとは無関係だよ
これ以上はスレチ
>>325 スレチと書かれてるが乗りかかった船だw
コピペしたらTABを削って、相手先のフォントに合わせてみそ。
メール作成時のフォントはCalibriなので、どこかをイジるとフォントが変わる(ハズ)。
今は使わなくなったから忘れたw
あとは、Windows板とかで聞いてみればいい。
あと、もうひとつだけw
Windows Liveメールは全角スペースが半角になったり、
連続するスペースの数が減ったりするので要注意w
スレ汚しすまそw
>>327 おっしゃられるように双方リッチテキスト形式でやりとりしております。
>>328 スレ違いということは、取引先はエクセルで作っていないということでしょうか?
>>329 すみません。検索しても”TABを削る”の意味がわかりませんでした。
どうやらすれ違いのようですのでWindows板の方に行ってみます。
ご返答くれた方ありがとうございました。
332 :
名無しさん@そうだ選挙にいこう:2015/01/17(土) 12:12:22.53
行の高さが一定のとき
でかいフォントの文字を入れたら
上下がちょん切れて印刷されるんですが
これを列のときのように外にはみでたまま印刷させるにはどうしたらいいですか?
【1 OSの種類 .】 Windows8.1
【2 Excelのバージョン 】 Excel10(うろ覚え)
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
初心者の質問スレから誘導されてきました!
0.016と0.069と0.025をそれぞれ
ROUND(A1,3)、ROUND(A2,3)、ROUND(A3,3)として
0.02と0.07と0.03の表示にしてSUM(A1:A3)とすると、合計が0.11になってしまいます
四捨五入表示されているだけで、実際は0.016+0.069+0.025になっているのは解るのですが
欲しいのはあくまで四捨五入後の0.02+0.07+0.03の0.12なのです
どうかよろしくお願いします!
>>333 B1 =ROUND(A1,2)
B2 =ROUND(A2,2)
B3 =ROUND(A3,2)
として
=SUM(B1:B3)
>>334 ありがとうございます!!
言われた通り、欄外にROUND(A1,2)としてそれを合計したら四捨五入後の合計になりました!!
本当に、本当にありがとうございます!!多謝!!
>>332 そういう機能はExcelにはありません
セルの高さを変えずに、特定の場所だけ大きなフォントを使いたいなら
オートシェイプやテキストボックスなどを使いましょう
337 :
332:2015/01/17(土) 23:27:15.36 ID:e6yElKap
>>336 そこをなんとかお願いできないでしょうか?
普通のセルで文字を大きいままで印刷したいんです。
>>337 基本無理
カメラ機能ってのがある
それがわからんなら画像でも入れるしかない
339 :
332:2015/01/17(土) 23:33:09.31 ID:e6yElKap
>>338 そんな殺生(せっしょう)な。
あなただけが頼りなんです。
なんとかなりませんでしょうか?
340 :
332:2015/01/17(土) 23:33:55.22
基本が無理なら応用ではできるってことですよね。
どうしますか?
>>332 行の高さを変えずにというなら空欄の行をフォントの高さの分上に足せば?
>>332 上下に行を挿入、結合させるとか
別に意地悪で言ってるわけじゃなく、本当にこれぐらいしか解決策がない
343 :
332:2015/01/17(土) 23:57:22.19
>>341 >>342 空欄の行は例え100行上に追加しても文字列は上下がちょん切られるんです
結合はあとあといろんな編集を行うときいろんな不都合が起こるので使いたくないんです。
344 :
332:2015/01/17(土) 23:59:21.16 ID:W0zi9JFS
もういいです
わからないなら黙っててください
答えのわかる人だけレスしてください
ニセモノが3人ぐらいいるな
ヒント ID
よくわかんないけどセルに書かずにテキストボックスで挿入すればいんじゃない
347 :
332:2015/01/18(日) 00:07:41.17
>>346 テキストボックスもいろいろ不都合があるんです。
たとえば検索ではテキストボックスの中の文字列はひっかかってこないとか
コピペでメモ帳にその文字列が貼りつかないとか。
348 :
332:2015/01/18(日) 00:08:22.13
>>344 こら。
あなたはニセモノじゃないですか。
あれ、ここのIDって前から出てだっけ?
ずっと気付かなかった
>>347 メモ帳に貼るならそもそも文字がきちんと見えてなくてもよくない?
354 :
名無しさん@そうだ選挙にいこう:2015/01/18(日) 09:51:56.03
>>351 んなアホな仕様なわけない
メール欄が空だとIDが出る。この仕様は他の板にもたまにある
355 :
名無しさん@そうだ選挙にいこう:2015/01/18(日) 09:56:27.19
と思ったら違った
すいませんでした。
てす
!id使える板か
359 :
名無しさん@そうだ選挙にいこう:2015/01/18(日) 11:36:00.28 ID:NP/zPEIF
名前に!idって入れるとIDが出て偽者防止になる
これはいいね
この板は2chの他の居たと比べれば、まともな奴が多いので
強制IDだと変な粘着が出る事の弊害の方が大きいけど
任意IDなら騙り防止として、何の弊害もなく有用性だけがもたらされる
361 :
名無しさん@そうだ選挙にいこう:2015/01/18(日) 11:57:02.69
Windows8でエクセル2010使っているけど
なんかのひょうしに強制終了みたいになってしまって
その後、そのファイルは編集のためにロックされてしまって
そのファイルは開かなくなってしまった。
ロックされてるなら、ロックを解除というかハンドルを開放すればいいんじゃないの?
それが解らないなら、とりあえずOSの再起動してみれば?
再起動しても開けないなら、ロックとかではなくファイルが壊れてる可能性が高いので
バックアップがあるなら多少古くてもそちらを使い、バックアップが無いなら
バックアップをしないとこういう問題に直面するという勉強代として今回は諦めるべし
364 :
名無しさん@そうだ選挙にいこう:2015/01/18(日) 12:49:43.14
隠しファイル表示させてtmpファイルを削除するとか何とか
365 :
名無しさん@そうだ選挙にいこう:2015/01/18(日) 20:01:32.85
excel落ちまくるようになってきたわw
あるいは起動しない。
データー多すぎるんだろうけど。
他に軽い表計算ソフトないのかな?
366 :
名無しさん@そうだ選挙にいこう:2015/01/18(日) 20:12:24.91
367 :
名無しさん@そうだ選挙にいこう:2015/01/18(日) 20:33:06.58
>>366 基本検索結果は「本の業務に戻れる」を前提にしている
のは覚えておいて欲しい。俺もそうなんだが・・・
とりあえず俺からはこうだ。まず、俺はwin8を持っていないが、思いつく限りで
「win8 隠しファイル excel」
「win8 隠しファイル excel tmp 削除」
「win8 隠しファイル excel 作業 削除」
「win8 隠しファイル excel 見えない ファイル 削除」
などでググり、解決策を探す
もし本当に必要なファイルならそのHDを外して別のPCで読み込む
など
数時間で復帰できるなら経験上、面倒臭がらずに手動で復帰したほうが良い
>>365 Excelは表計算ソフトとは言いながら、多くの人がグリッドワープロとして使うので、
書式などのワープロ的要素を入れすぎて重くなってる感はあるよな
グリッドワープロも、それはそれで便利なのも解るけど
どうせならWordのグリッド的位置決め機能を強化すべきで
表計算ソフトであるExcelのワープロ的機能を強化しすぎるのは考え物だ
まあ俺はデータが多くなれば、Access+VBAとか、SQL使うので、別に困ってはいないけどね
あほか
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
エクセルの行を複数選択し、一部の行だけを選択解除するにはどうすればいいですか?
選択する場合は、ctrl+選択したい行をクリックでできるのですが解除がわかりません
>>369 グリッドワープロとかオレオレ造語でどや顔してる奴の相手するなよ...
>>370 > ctrl+選択したい行をクリック
その状態でもう一回クリックしてみ
372 :
ID:2015/01/19(月) 07:49:49.24
xlsファイルで、容量を減らすのに有効なテクニックとかありませんか?
xlsxファイルにするなどで容量減らせるのは体感的にわかるんですが
送付先の上司からよくわからんから、圧縮もxls以外での提出はやめろと叱られまして
7MBのファイルをメールで送った結果ISから容量を減らす工夫をといわれてしまい
小手先でもいいので、なにかありましたら教えてください
現時点では、SUMIFSの足し算をしている式をOFFSETでまとめる程度しかできていません
>>372 そもそも、通常のデータ量なら7MBなんて行かない。
そもそも、その上司に合わせてやる必要性がない。
375 :
名無しさん@そうだ選挙にいこう:2015/01/19(月) 09:16:58.65
>>372 そもそもどういう理由で増えてるか分からないので対策んのしようがない
ゴミデータ減らすなら新しいファイル作ってそこに全シートコピーするとか
無能上司だから見た目重視で罫線とかセル結合も多用してそうだな
VBA使えば数式や表示形式分の軽量化が望めるが
もちろん無能だからVBAなんか許さないだろうな
圧縮覚えるのが早そう
新しいブックにコピペすれば減ることがある
>>378 質問がわかりにくいけどxlsxは禁止された?ように読めるんだけど
それにしてもIDの出る法則がわからんな
名前欄もメール欄も変えてないのに出たり出なかったりする
>>381 xlsxはzipで圧縮されてるフォーマットなので、さらにzipで圧縮することは
無意味。
>>380 そもそも、それがオカシイ話。それを、はいはい分かりましたと言ってる
側もオカシイ話。
xlsxが読めないっていうなら、fileformat converterアドオン入れときゃ、
office2000でもxlsxは読める。
>>380 そういえば、なんでID出たり出なかったりしてるんだろう・・・
385 :
名無しさん@そうだ選挙にいこう:2015/01/19(月) 11:47:27.04 ID:nNPVJyZx
>>382 xlsxは使っちゃだめで、xlsを使えと支持されているそうだから、
xlsを圧縮すりゃいいだけじゃないの?
>送付先の上司からよくわからんから、圧縮もxls以外での提出はやめろと叱られまして
圧縮もダメじゃん
質問の日本語がおかしい
結局どれが良くてどれがダメなんだ?俺の解釈では
xlsx → 上司が禁止
zipなどでアーカイブしたxls → 上司が禁止
xlsそのまま → ISが文句 (これってISPかSIかSEの間違い?)
USBメモリに入れて上司にぶん投げれば良くね
390 :
372:2015/01/19(月) 12:43:11.16
いろいろありがとうございます
上司のも2007なので本来はxlxsでいいはずなのですが新しいものだからとあわせるのは気にくわないと電話で言われて
最終手段と双方が使える共有鯖に保存してメールでリンク貼るのもそのまま転送できないとさっき叱られました
40列×7000行のCSVファイルを自動的に条件分岐して毎月コピペすれば上司の用意したシートに計算結果出すようにした結果
ファイル容量が一気に増えたのですが仕方ないので全部手動に戻して
ファイル容量減らすしかないかと考えております
>>390 > 全部手動に戻してファイル容量減らすしかないかと考えております
手動なら容量減らせるのか?
ならそれと同じことをして、xls ファイルを生成するマクロ作ればいいだけじゃね?
上司に送る xls にマクロは要らないんだろ?
>>390 完全に禁止されたわけじゃないから文句は無視して巨大メールを送っとけ
それが一番簡単だろ
今どきメールの容量が数メガある程度で文句を言うなんて、そのISも上司と同じぐらい頭が古いと思うがな
で、「IS」って何?
>>390 もうちょっと落ち着いて日本語を書け
「〜すれば〜する」はおかしいだろ
正しくは「〜すれば〜なる」だぞ
40列7000行で7MBって、画像やグラフでも入ってるの?
Excel2003で1セル250文字入れてA1からAA7000までコピペしても3MBないんだけど
2007以降ってそんなにでかくなるの?
>>392 あ、計算結果を値のはりつけで良かったんですね
その手を忘れてました
ありがとうございます
>>393 鯖管みたいな人達です
まちげーたAA7000じゃねーAZ7000だ('A`
でサイズも5MBになったorz
>>390 >ファイル容量が一気に増えたのですが仕方ないので全部手動に戻して
>ファイル容量減らすしかないかと考えております
具体的に何ですか?全部手動ってのは
自己解凍のzipでいいじゃん
そもそもなんでメール?
毎回20文字以上のランダムな違うファイル名でFTPでアップして
メールにそのURL毎回書いて送ればいいのに
当然古いのは毎回消してな
質問者か上司がトロイに感染でもしてない限り
どんな凄腕ハッカーでもアクセスできないぜ?
【1 OSの種類 .】 WindowsVista
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
「○○を上限とする」という関数は無いでしょうか?
B1に「その関数(5,A1)」とすると
例えばA1に25が入っているときに、5が帰ってきて
A1が3なら3が帰ってくるみたいな関数があるといいのですが
今はB1=if(A1>5,5,A1)としてるのですが、
上限条件と処理するセルが増えると入力ミスをしやすく
デバッグの手間が膨大になるので・・・
403 :
402:2015/01/19(月) 17:27:03.70 ID:HkIYlcki
自己解決しました
MIN、MAXで簡単に指定できました
固い頭で「上限」って考えてたのが敗因でした
>>370 的はずれの可能性もあるけど、F4キーで直前の操作の繰り返し実行ってのがあるよ
複数選択するよりもF4キーを使う方が結果的に速くすむ場合が多々ある
406 :
372:2015/01/19(月) 19:20:59.58
>>397 一ヶ月分の発注ごとの売り上げデータを元にもし別手段にした場合及び
昨年の同じ月と比較した場合を顧客ごとに比較する表でした
今までは七千件分全部別手段だといくらになるかを一件一件料金表を見て個数などを含めて計算し
顧客ごとに更に計算するという非効率極まりないやり方でしたので
月の半分ぐらいをその作業のためにサビ残していたのですが
さすがに耐えきれずネット見ながら関数と条件付き書式だけで自動化を試みました
素人が付け焼き刃で作ったため、容量がやたらと大きくなってしまい減らす方法ないかなと質問しましたが
先程無事解決しました
読み取りパスワードが掛けられたブックを開くにはどうすればいいですか?
>>407 データを提供された方に電話してパスワードをメールで送ってもらうのはどうでしょう?
データを提供するヤツが読み取りパスを掛けるか?コノバカチンガ!!
>>409 普通にかけるだろ
うちは社外に出す奴は別ソフトで暗号化するけど
>>406 それブラックによくある単調で手間がかかる作業をやらせることで
思考能力を奪って仕事させる掌握術を実施していたのに
あんたがそれから脱しようとしたから難癖つけてできないようにしていただけなんじゃ?
>>409 メーラーの自動設定でファイル送るとパスワードがかかるなんてことは
稀によくあるw
本人が意識してないから指摘しないと気付いてくれない
なんにしろ、不正パスワードクラッキングの仕方を教えるわけにも行かないし
提供者というか製作者がパス教えてくれないなら、入手手段からして怪しいものなので
「製作者にパス聞け」で解決しない案件なら、意図せず不正行為の手助けをしてしまわないように
それ以上の回答は控えた方が良いね
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
連続していればsumifでいけるのですが
A10、B30、B32、C15、C32の連続しない5つのセルの
負の数のセルだけを合計する関数は無いでしょうか?
>>413 普通に足せばいいじゃん?
=if(a10<0,a10,0)+if(b30<0,b30,0)+ 以下省略
>>414 今はそれでやってるんですけどなんかスマートじゃなくて
=min(A10,0)+min(B30,0)+以下略にして少し読みやすくなったものの
一纏めでできる関数があればもっとメンテナンス性が上がるのですが
sumifでセル指定すれば?
やった事ないから出来ないかも知れんが
>>406の原因の想像ついた
条件付き書式は結構容量食うからすぐに容量が増える
そして初心者にありがちなのは必要最低限で収めず列まるごと範囲指定したりする
数万セルの書式だけ設定したセルがあれば無駄に容量が増えることになる
なんで、このスレは
>>416みたいなデタラメ教えるバカが常駐してるんだろうね?
sumifはsumif(範囲,条件式)でカンマを条件式の区切りで使うから、離れたセル指定なんて出来ないって、ちょっと考えりゃ分かるのに…
420 :
名無しさん@そうだ選挙にいこう:2015/01/20(火) 11:13:33.76
珍しい手のヒントになることもあるから、多少デタラメでも俺は歓迎するぞ
>>413 よく使うならユーザー定義関数覚えてみては
以下を標準モジュールに入れて
=test(A1,B2,C3)
とすれば0以下の合計を出せる
Function test(ParamArray prms() As Variant) As Double
Dim sum As Double
Dim prm As Variant
Dim rng As Range
sum = 0 '合計(結果)用
For Each prm In prms '引数を順に
If TypeName(prm) = "Range" Then '引数がRangeなら
For Each rng In prm '(引数の)Range範囲のセルを1つずつ
If IsNumeric(rng.Value) And (rng.Value < 0) Then sum = sum + rng.Value 'セルの値が負の数値なら合計に足す。
Next
Else '引数がRangeでないなら
If IsNumeric(prm) And prm < 0 Then sum = sum + prm '引数が負の数値なら合計に足す。
End If
Next
test = sum '戻り値をセット
End Function
SUMでは複数セルを指定できるからSUMIF使ったこと無い初心者が思いついただけじゃ?
笑ってスルーするか親切に教えてやれば良いじゃん
寧ろ雰囲気悪くしてる
>>418が常駐してるのが嫌
=SUM_MINUS(A10,B30,B32,C15,C32)
Function SUM_MINUS(ParamArray a())
For Each i In a
If i < 0 Then n = n + i
Next
SUM_MINUS = n
End Function
415は典型的な初心者
作業列使ったり数式の文字数が多いとダサイと思ってる
minなんて可読性悪く他人に見せられん
426 :
名無しさん@そうだ選挙にいこう:2015/01/20(火) 12:53:01.82
Excel97ってF2で編集するときに数式の範囲や指定されてるセルの色は変わらないんだっけ?
428 :
名無しさん@そうだ選挙にいこう:2015/01/20(火) 13:39:04.42
フォントサイズってよく言いますが
あれは文字の縦の長さ?それとも横の長さ?または文字はいつも正方形でその一辺の長さ?
429 :
名無しさん@そうだ選挙にいこう:2015/01/20(火) 13:53:35.01
>>428 フォントサイズはフォントのサイズ
フォントによって小さい文字があれば大きい文字もある
432 :
名無しさん@そうだ選挙にいこう:2015/01/20(火) 14:21:52.21
古いエクセルってどうしてますか?
今2010使っています。
office2000と2003が倉庫から出てきたんですが、どこかに需要あるでしょうか
自分では一升使わないだろうけど、捨てるのももったいないっす
>>432 一応、使ってなくても転売は禁止ってことになってるんで、どうすればいいかはあえてはっきりとは書かない
あとは、オークションとかチラっと見ながら、こっそり、お好きにどうぞ
434 :
名無しさん@そうだ選挙にいこう:2015/01/20(火) 14:35:18.38
>>433 そうなんですか、ありがとうございます。
・・・500円でした。
寄付とかできればいいんだけどなー
>>415 メンテナンス性って何を指してるか判らないですけど
5個程度なら迷わず414で10個以上なら作業列使います
単にネストが苦手なんじゃ?
なんかこのスレ、やたらと数式を短くしたがったり作業列を使わないのを攻撃的に言う人多いが
作業列使った方がよほど数式が短くならんか?
別シートの作業列を名前定義で指定してしまうなんてやっちまえば
少なくとも見た目の数式はかなり短くなる
2種類居る
1つのセルに記述する数式を短くすることに拘る人(長い数式NG)
1つでも使うセルを少なくすることに拘る人(作業列NG)
440 :
名無しさん@そうだ選挙にいこう:2015/01/20(火) 22:37:19.37
>>438 酷い数式は山ほど見てきたからな。
if(vlookup(~~~)=if(vlookup(~~~),名前定義,if(vlookup(名前定義~~~)...
みたいな。
短くする癖がないと最終的に大変なモンスターが生まれる。
作業列は個人的にいくら使ってもいいと思う。
名前定義は正直やめて欲しい。追いかけるのがめんどくさい。
名前定義の使いどころが正直わからない
計算式を表から見せないように値を出す時とかに使うものなのかな?
作業列自体は、このスレで知って使い出したが
条件変更がネストと比較してすごく楽になったので教えてくれたことを感謝している
>>421 離れたセルに名前つければ SUMIF( ) で行けるかと思ったが #Value エラーになるな、残念
>作業列は個人的にいくら使ってもいいと思う。
>名前定義は正直やめて欲しい。追いかけるのがめんどくさい
オレもそうだな
作業列は非表示にする事もあるが必ず数式セルにコメント入れてる
名前定義を使う時はセルにコメント入れて欲しい
エクセル使い慣れててもセルにコメント入れる人ってあまり見ない
入門書や初心者向けサイトでもお目にかかれないがなぜ?
カッコ悪いと思われてるのか?
名前定義は 範囲_督促対象表 とか、数式列EVAL とか、
aa,bb,ccというデータのカンマ句切りで中央を取ってくる用の数式なら 項目名_分割_中央値 とか
それっぽくしてあれば、さらに名前定義のコメントに書いてあればいいかな
セルコメントもありだね
セルコメントの主な用途は、くだらないネタの俳句とか、くだらない小話や愚痴に使うのが普通でしょ。
たまに「ここに何々を入力してください」とか、「数式!消さないで」とか使ってる人いるけど。「ジュッ、ジュテーム」とかに使った方がマシ。
おっと、ごめんよ、ちょいとおふざけが過ぎちまったよ、堪忍な
>>438 世の中には
「作業列なんかとっくに大量に使いまくってて、
それでも一部または全部の数式が複雑すぎて直したかったり、
収拾できないレベルまでスパゲティになった数式をどうにかしたい」
って人もいるんだぜ?
>>443 ただの作業列にコメントは面倒、説明するまでもないことがほとんどだし
>>446 作業列知る前までは数式を一つ一つ独立させるとちゃんと機能するのに
まとめるとエラーになることがあり順番を変えると動くことがあると
頭悩ませた初心者としては、そういう人は大変だろうなと同情する
エラーの理由がネストの数制限だとすら知らなかった奴
(そもそも、ネストの意味知らなかった)に
言われたくないかもだが
ネットでやりたい定義を検索すればやり方は簡単に調べられるけど、
用語を知らないとエラーになった時になんでエラーになったか
なかなか調べられないんだよな
名前定義をやめて欲しいとか、あたま固すぎるって
450 :
名無しさん@そうだ選挙にいこう:2015/01/21(水) 08:25:25.90
>>443 一行目が大抵見出しなので、そこにコメント入れてるな。
オレは逆に数式に使われてるセルに米入れる
引き継ぎをするときは、数式にコメも意味あると思うかな
ファイルを渡してその作業引き継いでもらった人が関数をことごとく削除して
手入力にしているのをさっき共有鯖で見ただけに
月を直してないから曜日が上手く判定されなくなっただけなのに全部手入力して曜日の漢字を入れるとか
大した手間ではないにしても笑ってしまった
この場合わざわざ日数直さなくてもオートフィルすれば良いだけだからそうしただけかもだけど
>>453 パスワードはつけてなかったがシートは保護しておいた
その上でやったんだから、やりやすいようにやってくれと本人にはこのこと言わないつもり
ただまあ、コメントで説明してあれば、別の選択肢もあったかなと
コメントなんて知らなかったよ
入門書に書いといて欲しいな
えっ 入門書にコメントないの?
【1 OSの種類 .】 Windows7 Pro64bit
【2 Excelのバージョン 】 Excel2010
2つ質問があります。
その1
ブックを開いて何もせず閉じようとすると「保存しますか?」って
メッセージが出るとき、何がそうさせてるのか調べる方法があるでしょうか?
その2
他のブックを参照しているブックを開いたとき、
「このブックには、ほかのデータソースへのリンクが含まれています」という
メッセージが出るときと出ないときがあります。
原因は何でしょうか?
458 :
名無しさん@そうだ選挙にいこう:2015/01/22(木) 19:12:18.15
>>457 揮発性関数というものがあってな
now()とかindirectとかがそれ
詳細はぐぐってくれ
他ブックへのリンクが含まれている
数式を「[」で検索して不要なら消すと良い
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 初心者
【4 VBAでの回答の可否】 可
商品 日付1 担当1 売上1 日付2 担当2 売上2 日付3 担当3 売上3
上記のようなデータベースがあります
一つの商品に最大で日付と担当が異なる売上があります
そのようなデータベースで特定の月 かつ 特定の担当の売上合計を出す処理をいれたのですが、
重すぎて話になりませんでした。
下に処理を書き出します
テスト用として去年全てのものという条件式になっていますが、
行的には50程度です
Sub 計算処理()
Dim i, j, k, l, Shainsu, LastRow As Integer
Dim Uriage(6) As Long
Shainsu = Worksheets("社員情報").Cells(Rows.Count, 6).End(xlUp).row - 30
MsgBox Shainsu
With Worksheets("打込")
For i = 1 To Shainsu
For j = 0 To 2
LastRow = .Cells(Rows.Count, 20 + j * 11).End(xlUp).row
For k = 5 To LastRow
If Year(CDate(.Cells(k, 20 + j * 11).Value)) < 2015 Then
If Worksheets("test").Cells(i + 1, 1).Value = .Cells(k, 19 + j * 11).Value Then
For l = 0 To 5
Uriage(l) = Uriage(l) + Val(.Cells(k, 22 + l + (j * 11)).Value)
Next l
End If
End If
Next k
Next j
For l = 0 To 5
Worksheets("test").Cells(i + 1, l + 2) = Uriage(l)
Uriage(l) = 0
Next l
Next i
End With
End Sub
セルにアクセスし過ぎじゃ?
>>461 先に全て取得してから回す方が早いですかね
463 :
457:2015/01/22(木) 20:35:42.84
>>458 now()とかは知ってます。
そういう関数やリンクとか、何が原因で書き換えられてるのか
調べる方法が知りたいんです。
その2の質問は、数式が不要とかではなく、他のブックを参照してる数式が
予め入ってるブックがあってそれを開くとき、メッセージが出るときと
出ないときがあるので、「メッセージが出るときと出ないときの原因は何か」を
知りたいんです。
464 :
名無しさん@そうだ選挙にいこう:2015/01/22(木) 20:37:27.80
>>460 そんなに重くなりそうに見えないけどな
Sub 計算処理()
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'全部の処理
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
って変えてみては
何となく
Worksheets("test").Cells(i + 1, l + 2) = Uriage(l)
この辺りが思い原因のような気がする(再計算などで)
>>463 少なくともNOW()はブックを開いた瞬間に書き換えられるのでメッセージは必ず出るはず
466 :
名無しさん@そうだ選挙にいこう:2015/01/22(木) 20:41:38.79
>>463 何が原因って揮発性関数があるから
全シート検索すれば良いだけ
2は知らん
>>459 そういう正規化されてないものはデータベースとは言わない
それは単なる表
まぁちゃんと正規化して処理を行うか、
重くなってもいいから、処理には不適切な今の表形式のまま処理するかは
好きにすればいいが、その表のままでやるなら、逐一セルアクセスしないで
とりあえず一括して二次元配列に値を取って、その配列から処理をしよう
あとは日付の比較演算は
日付を取得、日付を年に変換、2015と比較
日付を取得、日付を年に変換、2015と比較
日付を取得、日付を年に変換、2015と比較
とするより
2015/1/1のシリアル値を変数に取得
日付を取得、変数と比較
日付を取得、変数と比較
日付を取得、変数と比較
とした方が、シリアル値を取得する処理が1回増える変わりに
取得した日付を年に変換する処理を100回なり200回なり
ループの回数分減らせるので軽くなる
同じ理屈で、Valも使わず、セルには数値だけ入力し
単位は表示形式で付けるようにしよう
ループの外(あるいは浅いループ)で処理を増やしたり、事前準備をしてでも
ループの中(あるいは深いループ)の処理は極力減らすのが基本
>>464 ありがとうございます
どうも打込みシートでマクロを実行すると重くなり、
testシートで実行すると軽くナルっぽいです
なんかよくわかりませんが、教えていただいたものを組み込み動かしてみます!
>>467 ありがとうございます
正規化されていない、というのがイマイチ理解できないので調べます!
独学なので大変助かります、ありがとうございます
また、現状の表で行く場合の処理のアドバイスもありがとうございます
本当に勉強になります
熟読します
470 :
名無しさん@そうだ選挙にいこう:2015/01/22(木) 20:49:23.15
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
時間の計算で
開始時間、終了時間、総時間、休憩抜き、としたくて(休憩1時間)
まず、総時間=終了時間ー開始時間としました
で、休憩1時間をぬいた時間を、例えばA1セルに1:00として
休憩抜き=総時間−$A$1 とやったんですが
総時間が0:00のとき、マイナス時間になってしまうため#######となってしまいます
総時間が0:00、つまり開始時間、終了時間セルに何も打ち込まないとき休憩抜きセルも0:00のままにしておきたいのですが
そういう場合どうすればいいのでしょうか?
471 :
名無しさん@そうだ選挙にいこう:2015/01/22(木) 21:03:08.22
>>470 休憩抜き = if(and(開始時間="",終了時間=""),0,time(1,0,0))
time(1,0,0)は1/24でもいい。1/24はシリアル値でぐぐって勉強してくれ
472 :
名無しさん@そうだ選挙にいこう:2015/01/22(木) 21:04:03.74
>>470 すいません自己解決できました
=MAX(=総時間−$A$1,0) で0:00にできました
>>459みたいなのでも、マクロ使った方がいいんですか?
sumifsで値求めて条件は、データの入力規則でリストで担当者名一覧から選べば
マクロ使わなくても簡単にできるななんて思った初心者
474 :
名無しさん@そうだ選挙にいこう:2015/01/22(木) 21:47:56.23
>>473 本当にこの規模ならsumifsでできるならした方がいいと思う。できるかしらんけど。
やりやすい方でええんじゃない?
「重くなって話にならない」という点から数式で処理するとヤバイことになるような気はする。
>>474 重いんですか?
あの例にある通りなら、1,2,3ごとのsuifsを作業列に作って
値を求めるセルで、その三つをsumで合計すればいいだけに思うので
重くなるようには全く思えないのですが
数式も、
sumifs(売上列、日付列,年月,担当列,担当者名,商品名列,商品名)
で指定すればいいだけですし
私の知識じゃ、
年月を求める方法が、
日付列,">="&該当年月,日付列,"<"&該当年月
になってしまうのだけが問題かもですが
459です
>>475 元々去年はsumifsやsumproduct 等を使って集計していました。
一覧表があって、それに課、個人、契約時の売上や金額回収の売上と作っていくと重くて重くて・・・
そういう次第からデータベース化して、VBAで処理させた方が軽いし作業効率も上がるんじゃないだろうかと考えたのが始まりでした
まぁ、データベース化されてなかったわけですけど・・・。
頑張って正規化できるようにします
【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
指定した日時から、1時間50分毎の日時を1週間分表示させたいです
A1にこのように入力したら
2015/1/23 8:48
A2以降にその日の日付分のみ表示
2015/1/23 10:38
〜
2015/1/23 23:28
B1からは
2015/1/24 01:18
〜
2015/1/24 23:18
C1〜も同じように表示させたいです
よろしくお願いします
A2に
=IF(A1="","",IF(DAY(A1+"1:50:00")>DAY(A1),"",(A1+"1:50:00")))
B1に
=MAX(A:A)+"1:50:00"
A2からA16くらいをコピーしてB以降の列にペースト
B1をコピーしてC以降の1列目にペースト
479 :
477:2015/01/23(金) 18:18:13.23
>>478 できました!!
助かりましたー
どうもありがとうございました。
【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
度々すいません
もう1個どうしても分からないので教えてください
複数の行列の指定範囲内で1のセルの左側の値を取得したいです
この時1という値は指定範囲内に1つしかないです
あ 0 か 0
い 1 き 0
う 0 く 0
え 0 け 0
お 0 こ 0
訂正です
誤)複数の行列の指定範囲内で1のセルの左側の値を取得したいです
正)複数の行列の指定範囲内で値が1のセルの左側のセルの値を取得したいです
482 :
名無しさん@そうだ選挙にいこう:2015/01/23(金) 19:37:40.07
>>480 =IFERROR(INDEX(A:A,MATCH(1,B:B,0)),"")&IFERROR(INDEX(C:C,MATCH(1,D:D,0)),"")
こんな感じ
一行ならindexmatch一本でいけるけど複数行だとめんどくさいな
match index でggr
>>482 度々ありがとうございます
すいません、書き忘れていました
あ〜この部分のセルには日時が入っているんですが、
482で教えていただいた関数を使うと42027.9013888889等の数字の表示になってしまい
セルの書式を変えても日付表示されなかったんですが何が原因か分かりますか?
485 :
名無しさん@そうだ選挙にいこう:2015/01/23(金) 20:23:40.36
>>484 多分文字列になっている
=IFERROR(INDEX(A:A,MATCH(1,B:B,0)),"")&IFERROR(INDEX(C:C,MATCH(1,D:D,0)),"")*1
でいけるかな?
画面のチラつきを無くすために、Application.ScreenUpdating = Falseを入れてるんですが、
共通して使うものをCallで呼び出すようにしたらチラつきが出てしまいました。
どうすれば抑えられるでしょうか?
Sub a()
Application.ScreenUpdating = False
マクロa
End Sub
Sub b()
Application.ScreenUpdating = False
マクロb
End Sub
Sub c()
Application.ScreenUpdating = False
Call a
Call b
マクロc
End Sub
>>485 ありがとうございます
485の関数を括弧でくくったら動くようになりました
=(IFERROR(INDEX(A:A,MATCH(1,B:B,0)),"")&IFERROR(INDEX(C:C,MATCH(1,D:D,0)),""))*1
度々ありがとうございました
>>486 2010で試してみたけど、
Application.ScreenUpdating = False
を続けて何回実行しても別にチラつかなかった
原因はほかにあるんじゃない?
どこでTrueにしてるの?
489 :
名無しさん@そうだ選挙にいこう:2015/01/23(金) 22:57:06.64
>>486 Sub a()
Sub b()
この中の Application.ScreenUpdating = Falseはいらんよ
以下以外の切り替えは一切いらない
Sub c()
Application.ScreenUpdating = False
Call a
Call b
マクロc
Application.ScreenUpdating = true
End Sub
490 :
486:2015/01/23(金) 23:07:03.79
>>488 Trueは一番最後(マクロcの後)です。
Sub c()
Application.ScreenUpdating = False
マクロa
マクロb
マクロc
Application.ScreenUpdating = True
End Sub
これだとチラつきが出ないんですけどね・・・
491 :
名無しさん@そうだ選挙にいこう:2015/01/23(金) 23:27:23.15
標準モジュールをいくつも用意するのが良いのか
同じモジュール内にsub〜end subを数ブロック書くのが良いのか悩む
同じモジュール内で
sub1
a=
end sub1
とaを定義したらそのaを使うことはできるのですか?
sub2
〜=a
end sub2
のように、aを定義しなくても使えますか?
それともきちんと格納し直さなければならない?
もし定義しなくても同じものが使えるのなら同一モジュール内でsub end subのブロックを複数作る方が良い場合があるというのはわかりますが、それがないならただvba作るとき下にいっぱいスクロールしなきゃいけないぐらいしか特徴が見当たらないのですが
>>492 変数がどこまで使えるかは「スコープ」について勉強するといいよ
それから、Subをいくつ作るかはコーディングの効率、保守の能率、プログラミング哲学まで
複雑な要素がからんでるから簡単には答えの出ない問題
趣味で作るプログラムの場合、正解は人の数だけあるので、とにかく経験を積むしかない
仕事で作る場合は会社の先輩に聞け
担当者が自分一人なら自分で考えろ
この話題は荒れる
モジュールはフォルダ、subはファイル
それと同じ感じで使ってる
クラスモジュールまで含めるとその考え方では破綻するから厄介だ
ある程度の大きさになるのなら関数化する
っていうざっくりした感覚を基にして
ある程度の大きさになるのならモジュールを整理する
っていうざっくりした感覚を基にして
「この種の関数はこのモジュール」(逆にいうと「このモジュールはこの種の関数」)
って予めモジュールを用意しておくんでとりあえずはいいんでしょ
498 :
名無しさん@そうだ選挙にいこう:2015/01/24(土) 09:58:02.71
>>489 On Error Resume Nextを書くとしても
Sub c()の1か所でOKですか?
On Error Resume Nextは極力使わないのが基本
故に、使うとしても最小限度に留めるべき
因って、逐一宣言して、なるべく早くOn Error GoTo 0すべき
500 :
498:2015/01/24(土) 19:42:15.55
わかっとるわハゲ
言語仕様の質問だ
言語使用の注意じゃなく
そもそも例外が発生しないようなコーディングをするべきだけどね。
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
実はスレチなんですが、PCでインターネットのリンク集をエクセルで作っていて
これをスマホ(アンドロイド)でも使おうと思ってスマホにOffice Mobileというのをインストールし
PCで作ったリンク集のエクセルファイルをスマホに入れて開いたのですが
URLは青字で表示されるものの、タップ・ダブルタップ・長押しのどの操作でもブラウザが開きませんでした。
何が問題なのでしょうか?そもそもスマホでは出来ないのでしょうか?
「Open Officeなら出来た」とかの情報でもよいので教えて下さい。
Excel側で保存時にhtmlとかか
>>502 検索してみたOffice Mobileだとハイパーリンクは不可って記事が出てきたよ
だから単に対応してないんじゃない
俺もhtmlで保存に一票
>>501 ファイルオープンとか無理なもんがあるだろ
【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
横X、縦Yの領域に、(1,1)から時計回りの渦巻き状に連番を振りたいです
X=4、Y=4だとこうです(一桁の数の先頭のゼロは単なる位置合わせで、実際は不要)
01, 02, 03, 04
12, 13, 14, 05
11, 16, 15, 06
10, 09, 08, 07
とりあえずx,y座標が、次にそれぞれ(+1,+0)、(+0,+1)、(-1,+0)、(+0,-1)となるのを、
次に0未満か4を超える時には切り替えて……とかやってみたのですが、
上の例だと12のところ(1,2)まで振ったあと、(1,1)は埋まってるので次は+1,0、というのが出来ませんでした
そうか、エスパーするとスマホ側でも並び替えたり検索したりしたいのかも
そしたらスマホ側でハイパーリンク対応のスプレッドシートアプリを探さないといけなくなるな
そこまでいくと確かにスレチ だが、ちと調べた限りじゃなんか面倒らしいね
Documents To Go ならいけるとかは書いてあるけど2012.03.28の記事 かつ有料
ちな、自分のやりかただとPC側で予想するだけの検索・並べ替えしたものをhtml化 それをDropBoxへ
Android側ではファイル名で判断して必要なものを開く そんな使い方 7インチだとちまちました画面が目に気の毒・・w
Excel 2010の未修正の不具合が載っているサイトはありますか?
プログラム自体の脆弱性などという意味での不具合ではなくて、
計算だ何だという使用上の?不具合について知りたいです
>>507 (1,1)からって、A1からって意味?
シェイプの矢印の幅・高さを変えた時に単に伸び縮みせず矢の先が45度を保つように端の位置が変わったりします。
矢印を選択するとその端にあたる部分は黄色い四角となってますが、あれはどういう概念なんでしょう?
自作であのように幅や高さに連動して位置を変える点を作成することってできますか?
512 :
507:2015/01/25(日) 00:11:23.23
>>510 そう、
>>507だと、1をA1に書くなら、2がB1、3がC1、4がD1、5はD2、最後の16はB3です
ROW、COLUMNとX、Yから数値を求める式は、ちょっと考えれば作れそうだけど
VBAでやりたいなあ
514 :
名無しさん@そうだ選挙にいこう:2015/01/25(日) 01:09:54.92
>>498 On Error Resume Next
は。
On Error Goto 0で解除できる
エラーと言うのはそもそもただの分岐である、ということをわかっていれば恐れることはない
中で何やっているか分からなければgoto 0で分岐すればいいだけであり
>>500みたいな受け答えをするのはそもそもerrorを恐れてるのである。
分からないなら素直に分岐させればいいだけである。
エラーが起こる理由も起こす理由もさんざんわかった後ならresume nextでいい。
また結果がどうでもいいもの(画像処理など)でもresumenextで良いだろう。
自分が失敗して怒られる可能性があるなら須らくエラー処理をスべきである。
それは、みんな後悔しているのである。
そして、これからも皆後悔し続けるのであろう。
515 :
名無しさん@そうだ選挙にいこう:2015/01/25(日) 01:16:02.57
>>507 グーグルの考え方だな。 なんか言うけど忘れた。一次元にするって奴。
思いっきりvbaの領域。
vbaありなら回答できそう
indirectでもできしおうだけどちょっと
>>511 スべからず見た目に関するものはバグと思っておけばok
目的は「綺麗な図を書くこと」だろう。
イラストレーターや、それに準ずるソフトを使うべき
どうしてもエクセルでなんとかしたいならvbaで頑張るべき
>>493 私一人だし私のためのプログラムだから特に決まった制約もないんですが、改めて眺めてみるとずいぶん汚いプログラムだなあって思って。
>>511 既存のオートシェイプの仕様を変更することは出来ないけど
オートシェイプのような図形を1から自作することは出来るよ
ただ作るのに使うのはExcelではなくベクターイラストの作成編集ソフトなので
作り方とかはスレ違いになるから自分で勉強しよう
Excelで出来ないなら諦めるってなら、それもありだけど
>>515 バグというのが意味わからんですが…
綺麗な図を描きたいというよりも矢印シェイプのような高さや幅に連動した位置の点を持つシェイプを作りたい。
>>517 ベクターをイラレとかでかけるのは分かるんですが、黄色い点のような連動するものもそれらで描ける?
>>502 他の人もいってるけどHTMLでスマホに置いて、HTMLをブラウザで開いて、ブックマークでいいんじゃないか
嫌ならGoogleドライブに統合されたOfficeでできたりしないかな?確認してないし、そもそもスマホのOSがなんなのかすら書いてないし
Androidならこの板もどうぞ
スマホアプリ
http://anago.2ch.net/applism/ (ゲームスレが腐るほどあるから2chブラウザの2chmateあたりのNGスレ正規表現を二つ置いておくよ、適当に改編して)
^(?i)(?!.*android|.*google)
ゲーム|★|募集|交換|招待|課金|版|iOS|iphone|RPG|MMO|(^|】)[ア-ンア-ン].*\d+.*|クラ(?!イアント)|なめこ
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
A1にデータの項目名、A2にデータの個数、A3〜A***にデータ
というような表を作りたいです。
そういう場合A2に「=count(A3:A***)」と書いていますが、以下のような問題点があると考えています。
もっと良い書き方はないでしょうか?
※ なお、***は「十分大きな数」です。
問題点1
最初に表を作ったときはデータ数の上限は***で十分だと思っていても
運用するうちに超えてしまう可能性がある。
問題点2
データのセルの削除・挿入などを行っていると***の数値が変わる。
問題点3
***が「データの最後まで」を表しているのか、***という数値そのものに意味があるのかが
初見で判断しづらく、メンテナンス性に欠ける。
厳密に運用方法を縛ってしまえば問題は無いのですが、
たかがデータ数カウントの実装の制約のためにそんな事をしたくありません。
何か良い書き方は無いでしょうか?
521 :
名無しさん@そうだ選挙にいこう:2015/01/25(日) 13:54:22.69
範囲に名前をつける
>>520 式を入れるセルを別列にして、A:Aを範囲指定した上で、項目名分を-1すればいいじゃん
データ列が複数あるとかで、見ため的に項目名、カウント、データを1列内に納めたいなら、
A1=項目名
B2=TEXT(COUNTA(A:A)-1,"0_ ")
A3=データ
A4=データ
とした上で、B2を右寄せにし、Bの列幅を0.08(ほぼ非表示)にしろ
B2の数式が返した値は、位置的にはA2上に表示されるから
あとは同じく、
C列に項目名とデータ、D2に数式入れて右寄せで列幅0.08
E列に項目名とデータ、F2列に数式入れて右寄せで列幅0.08
とすれば、
表示上は同列上に項目名もデータもカウントも表示されるので
データが複数列あっても、計算を別列で行うことで表示が煩わしくなるのを避けられる
523 :
名無しさん@そうだ選挙にいこう:2015/01/25(日) 14:52:11.05
>>520 問題点3はまさしく運用方法で決める話だからどうにもならないけど
データの終端に特定の文字列(例えばEOFとか)を書き込むと決めておけば
その文字列のある行を検索して、
そこから3(A1,A2とEOFの書いてある行はデータ行じゃないから)を引けば
データ数が出せる
問題点は頭が悪いこと
>>520 問題点1
1048576にする
問題点2
削除されないセルに「最終セル値」を入れる
例えば、X2に「A1048576」 A2に「=COUNT(A3:INDIRECT(X2)」
問題点3
X2、A2にコメント入れる
既出ならスマソ
エクセル2010の条件付書式で、行や列のコピー挿入や切り貼りの際に、
条件付書式のセル範囲が分断されてしまう現象の解消法見つけた。
使ってる条件付書式の他に、全セル対象の適当な条件を追加しておくと(書式設定なしでいい)、大丈夫になる。
条件付書式の範囲内での切り貼りなら分断が起こらないことは判っていたので、ふと試してみたら出来た。
使ってる条件付書式に対しては相変わらず範囲外を含んでるんだけど、一つでも範囲外にならない条件があれば、
新しい条件付書式が自動作成されないみたい。
2007までは大丈夫で、2010で起きるようになって、困ってたのが解消して嬉しいので書き込んでみる。
2013は持ってないので不明。
でも、>417とか見るとやっぱ全セル対象ってのは、それはそれで問題起きる原因になったりするのかなぁ
ちなみに、もともと、コピーではない単なる行挿入では分断は起きないので(悪いのは書式の貼り付け)、
今までは、行の挿入→数式のコピーとかで頑張ってた。
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
明細書という一覧表が人数分あって、
新しいファイルに人数分テンプレートを使って、値を飛ばしたいのです。
VBAでテンプレートを追加するという方法は判るのですが、
複数作る方法というのは見つけられませんでした
打込みブックから、テンプレート呼び出し(打込みブックパス指定し、テンプレート呼出し)、シート名を名前にし、値を飛ばす
⇒打込みブックに戻って新しいテンプレートを作る
という作業を繰り返すよりスマートな方法ありますか?
530 :
530:2015/01/27(火) 11:32:48.88
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ?
【4 VBAでの回答の可否】 可
すみません少し教えてください
今縦14セル横45セルの大きさの表を作ってて、それぞれのセルにコメントを付けたいんですね
でっていう、一行開けて下に同じ大きさの14*45の表を作って
そこに対応するコメント内容を書いてってってって
つまるところ相対参照で15個下のセルの内容をコメントとして取得してきてそうしてああしてしたいなと
それでいろいろググったところコメントを設定するみたいなのとかひっかかりなんかしちゃったりして
もう少しでできそうな予感がしてきたんだけどもだっけーど♪
なんていうかね、「変数指定してそこに相対参照的な15個下のセル内容を取得」って
コレのやりかたがちょっとわからなくてね
Dim com As String
com = Range("=R[15]C").Value
こんな感じに書いて
やったか!(やってない)
みたいなことになったんですわ
たぶん変数の取得さえできれば
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_comment.html このへん見ながらうまくやれるような気がするんだけどなあ・・・ね?ね?
別に全部一括とかでなくてもね、ショートカットのCtrl+kとか押したら
15下のをシュバッと取得してスチャッとコメントになればまあそれでまあまあという感じなわけですよ
できますかね、できますよね、どうしますか、どうしましょう
ピラフここにも居るのか
キレそう
532 :
名無しさん@そうだ選挙にいこう:2015/01/27(火) 12:24:27.67
>>530 多分普通の文章書いたほうが回答は多く得られると思うよ…
俺はしんどくなったので、質問を読むのを断念したよ
533 :
530:2015/01/27(火) 12:47:45.17
534 :
名無しさん@そうだ選挙にいこう:2015/01/27(火) 13:23:20.74
535 :
530:2015/01/27(火) 13:27:43.27
>>534 あきらめるなよ青春!
走れ太陽!真っ赤に燃えろ!!
なんだ荒らしかよ
質問スレまで荒らして何が楽しいんだか
537 :
名無しさん@そうだ選挙にいこう:2015/01/27(火) 14:07:51.95
コミュ障は解答したがるくせに自分の思ってたことと違うとキレるから本当にタチが悪い
538 :
名無しさん@そうだ選挙にいこう:2015/01/27(火) 14:22:01.44
30代の腐女子事務?
>>530 Sub a()
gyokaishi = 1
retukaisi = 1
gyo = 14
retu = 45
For k = retukaisi To retu
For i = gyokaishi To gyo
If Not Cells(i, k).Comment Is Nothing Then
Cells(i, k).ClearComments
End If
Cells(i, k).AddComment
Cells(i, k).Comment.Text Text:=Cells(i + 15, k).Value & ""
Next
Next
End Sub
>>530 Range("A1").AddComment Range("A16").Text
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 可
下記のコードがうまくいかない理由がわからないので教えていただきたいです。
(目的は別の書き方で解決してるので大丈夫です)
Worksheets("Sheet1").Range(Cells(1, 1), Cells(3, 1)) = Worksheets("Sheet2").Range(Cells(1, 1), Cells(3, 1)).Value
同じシート上ならこれでも値を移せるのですが別シートになるとうまくいきません。
Cellsを抜くと大丈夫のようなのですが。
どなたかお願いします。
>>530 Sub m3()
For Each c In Range("A1").Resize(14, 45)
c.ClearComments
c.AddComment c.Offset(14).Text
Next
End Sub
542 :
名無しさん@そうだ選挙にいこう:2015/01/27(火) 14:45:14.87
>>540 スコープという概念をぐぐって覚えれば良い
簡単に言うとsheet1に書いたコードはsheet1の中身を扱うことはできるけど、
sheet2のワークシートやセルの中身を扱うことは出来ない
標準モジュールに書くとそのままのコードでも扱えるはずだから標準モジュールに書くと良い
>>540 シートの指定を省略するとRange型の対象はActiveSheetと見なされる
CellsもRange型だから同様
だからこれを動くようにするには
Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1, 1), Worksheets("Sheet1").Cells(3, 1))
のように、すべてのRangeに対して同じシートを指定しないと範囲指定のエラーになる
コードを整理するにはObject変数を使う、Withを使う、ワーク変数を使うなど色々な方法が考えられる
>>540 セル位置、セル範囲を数値型変数で指定したい場合はOffsetとResizeを使うといい
そうすればシートの指定が先頭の1個だけで済む
545 :
530:2015/01/27(火) 15:31:39.93
おぉ・・・ベルマークの仕分け作業手伝わされてた間に回答が
ありがとうありがとう・・・ありがとうという意味でのありがとう・・・
ちょっと前の質問で、ワークシートにハイパーリンクを貼ってAndroidで使いたいってのがあったけど
googleスプレッドシートなら使えるはず
ただしMSのOfficeMobileに比べるとやや重いかも
>>542 標準モジュールには書いていたのですが、なにやら勉強になりそうなのでぐぐっておきます。
>>543 ありがとうございます。そういうことでしたか〜スッキリしました!
>>544 ありがとうございます。たしかにこれなら先頭の指定だけでいいですね
548 :
542:2015/01/27(火) 16:21:43.65
>>547 テキトーに答えたら間違ってましたゴメンナサイ
条件付き書式って、なんで名目上別シートの参照ができないようになっているんだろう?
何かマクロを作るなどの別の機能に関係して利点になることあるんかね?
完全に禁止したいなら、名前の定義等の抜け穴用意しないと思うんだが
550 :
名無しさん@そうだ選挙にいこう:2015/01/27(火) 20:46:10.13
>>549 >名目上別シートの参照ができないようになっているんだろう?
の意味がわからなかった
普通に設定できたけど
>>550 古いバージョンのエクセルだと別シートの参照をしようとすると、
警告メッセージが出てエラーになる
俺も家は2013、職場は2007だから、
家ので練習して職場で実際にやってみようとするとできないことが多くて
戸惑うことが多い
552 :
名無しさん@そうだ選挙にいこう:2015/01/27(火) 21:47:22.72
>>551 なるほど
じゃあ設定できるようにし忘れてたんだろうね
Excel2010 Pro 32bit
Win7 Pro 64bit
今まで全く問題無かったのですが、本日、急に、
マウス右クリックで開くメニューの
削除
挿入
数式と値のクリア
の3機能が、薄い灰色の文字になってしまい実行出来ません。
リボン上の同じ機能を実行すると正しく動きます。
ようするに右クリックメニューがおかしいのです。
どうすれば良いでしょうか?
こんな問題初めてです。
>>552 その関係もあって、条件付き書式で特に何もせずに別シート参照したファイルを
古いバージョンのエクセルで開くと条件付き書式が作用しない
名前定義やINDIRECTで指定してやれば問題なく作用するから
古いバージョンのエクセルを使う可能性がある人に
ファイル送付される可能性があるならやっておくに越したことはない
556 :
名無しさん@そうだ選挙にいこう:2015/01/28(水) 08:59:04.00
>>553 新しいファイルでは?
もしそっちがまともなら全シートをコピーすればok
>>556 新しいbookでもダメです。
office2010の修復をしてもダメです。
win7を2週間前の状態に復元してもダメです。
困った。
>>558 右メニューの問題だけでなく、さらに以下の問題も発覚しました。
シートの中の適当な長方形領域をマウスで選択して、その長方形の
右下にマウスカーソルを持って行くと、正常な場合なら、マウス
カーソルが十字に変わって、その領域をドラッグして別の場所に
移動できますねよ。ところが、その十字カーソルが出ないので、
ドラッグ操作が出来ません。
もう分け分りません。困った。
>>559 完全に壊れてますわ
Officeとマウスのドライバを再インスコしてメニューを拡張する系のアプリを削除
>>560 SafeモードでExcelを起動すると正常のようなのですが。
どうしたら良いでしょうか?
シートかブックの保護かかっただけなんでは?
新規ブックが最初から保護かかった状態ってあるの?
>>562 EXCEL2010とEXCEL2013が入っていて
2013のほうは全く問題ありません。2010がもう分け分りません。
とりあえずシステムの復元やってみれ
567 :
名無しさん@そうだ選挙にいこう:2015/01/28(水) 18:52:04.17
>>553 キーボードかマウスがおかしい可能性
一度全部の線抜いて挿し直す、または予備があれば交換してみる
もしくは変なアドイン入れてたら外す
もしくはキーボードマクロみたいなの入れてたら停止させる
常駐ソフトはとりあえず停止させる
ウィルスチェック
XLSTARTを何かする
http://office-qa.com/Excel/ex91.htm あとは何だ、
エクセル 右クリック おかしい
エクセル 右クリック グレーアウト
このへんで検索してかたっぱしから試して
無理ならOSごと入れなおせばいいんじゃないか
それかoooでも使うか
>>567 Win7 やEXCEL2013や、その他のアプリは正常で、
EXCEL2010のみおかしいんです。
でもEXCEL2010をSAFEモードで起動すると正常です。
OFFICE2010をアンインストールしてインストールし直すのが良いでしょうか。
面倒なのでやりたくないのですが。
571 :
名無しさん@そうだ選挙にいこう:2015/01/28(水) 19:51:53.50
>>568 >>567試した?
あと2013あるなら2010使わなければ良いだけでは?
面倒ならやらなくていいと思うよ。俺ならさっさと再インストールしてもう作業終わってる
互換パックの挙動を試したいので
エクセル2007で作られたファイルをください
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 不可
電話番号の0が取れた九桁の数字をINDEXで表の中から表示した場合で
TEXT関数で、"0000000000"を書式として冒頭に0を付けようとしたのですが、
何度やっても冒頭に0が付きません
2013だと普通にできるのですが2007だとできない理由・回避方法などがあるのでしょうか
教えてください
575 :
名無しさん@そうだ選挙にいこう:2015/01/28(水) 23:23:28.65
>>574 ・書式設定が数値になってる(多分関係ない)
・計算してる=TEXT(5,"000000000")*1とか(多分無い)
ぐらいしか思いつかなかったよ
2010では=TEXT(5,"000000000")は000000005になった
576 :
574:2015/01/29(木) 12:31:50.03
どうも2007だと桁数上限があるようです
LEFTとRIGHTで数字を分けて、&で繋げて桁数を減らしたら冒頭に0をつけることができました
新しいバージョンになると細かいところで使いやすさが上がるようですね
>>574 >TEXT関数で、"0000000000"を書式として
0が1つ足らないんだけど(鼻ほじ
まちげーた
固定電話は10桁か
>>579 昭和時代はずっと9桁だった東京と大阪の電話番号が10桁になったのは平成になってからですよ
ケータイ(11桁)しか考えてなくて
送信してから固定電話思い出した(=w=;
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
yyyy:mm:dd hh:mm:ss → yyyy/mm/dd hh:mm
(2015:01:01 01:01:01 → 2015/01/01 01:01)
にする方法を教えて下さい。
よろしくお願いします。
>>582 シリアル値なら書式を変える
文字列ならLEFTとか使って
=LEFT(REPLACE(REPLACE(A1,5,1,"/"),8,1,"/"),16)
=LEFT(A1,4)&"/"&MID(A1,6,2)&"/"&MID(A1,9,8)
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】初心者
【4 VBAでの回答の可否】 可
3桁および4桁の数字で月日が表現されている状態で、
2014年4月から2015年3月までの日付が入っている列がある
その右側に検索値の列がある状態で、
作業列を使わずに元列の順番も変えずに2014年から2015年までの日付を
検索して表示するのに計算式を短くする方法ってないかね?
元々は作業列使って列の順番も変えていたんだが
上司から
「作業列なんてみっともないこと許されるのは学生までだ」
とダメ出しを出されて元列の順番変えるのも常識外れと非難される始末
かといって、全部一セルに数式を書いたら長すぎるから短くしろと言われてしまい
現状は、
IF(INDEX($A$1:$A$12320,MATCH($C2,$B$1:B$12320,0))>331,
TEXT(LEFT(TEXT(INDEX($A$1:$A$12320,MATCH($C2,$B$1:B$12320,0)),"0000"),2)&
"月"&RIGHT(INDEX($A$1:$A$12320,MATCH($C2,$B$1:B$12320,0)),2)&
"日")-365,"YY年MM月DD日"),
LEFT(TEXT(INDEX($A$1:$A$12320,MATCH($C2,$B$1:B$12320,0)),"0000"),2)&
"月"&RIGHT(INDEX($A$1:$A$12320,MATCH($C2,$B$1:B$12320,0)),2)&"日")
せめて列の順番入れ替えOK出れば、VLOOKUPに切り替えるんだが
587 :
名無しさん@そうだ選挙にいこう:2015/01/30(金) 06:22:05.79
>>586 >3桁および4桁の数字で月日が表現されている
がちょっとわからない
111はどうなるの?1/11か11/1か
あと全体的にやりたいことがわからない
>>586 >その右側に検索値の列がある状態で、
検索値ってなに?
>作業列を使わずに元列の順番も変えずに2014年から2015年までの日付を検索して表示する
どこに?
ごちゃごちゃ余計なことばかりだから端的に書き直してよ
>>586 >3桁および4桁の数字で月日が表現されている状態
>「作業列なんてみっともないこと許されるのは学生までだ」
上司ヴァカだな
>>587 111なら、1月11日
11月1日は1101になってる
検索値は売上ごとにある12ケタのコード
3桁4桁の数字で日付を表している日付列を最初直接引っ張ったんだが
表全体を指定して並べ替えしないと連動しなかったとダメ出し出されて
直接コードに紐づけることにした
コードのある別シートのA列に日付を入れてコードに連動さえすればいい
ただ、3桁4桁の数字では見にくいから、○月○○日の形式にするように言われている
>>589 そこが一番困ってる
条件付き書式とデータの入力規則を組み合わせただけの
xlsxファイルを作って渡しただけで、マクロと言ってくるレベルのくせに
自分はエクセル上級者だから、それに合わせろと言ってくるのはなあ
>>590 シート1
X列、Y列
日付、コード
※日付はmdd形式の3か4桁
シート2
a列、b列
空、コード
※a列にシート1の日付を月日形式で表示したい
こういうこと?
愚痴スレじゃなくて相談スレだから要点だけ書けよカス
上司の無能さを測るまでもなくお前の無能さが滲み出てるよ
あと名前欄になんか入れるかID出して
セルの構成も書かずに数式だけ出す奴が上司をバカ扱いとか、産廃ゆとりの子守り乙としか。
>>586 ようは作業列がシート内にあるのが上司的にみっともないんだろ?
シート本体で「ここまでしか使わない列」の隣の列に
(例えばA〜CFまでしか使ってないなら、CG〜)
作業列作って「列を非表示」で隠しちまえよ
”=CI1”とかで済むぜ?
Excelは範囲外の列や行は無理矢理カーソルキーで引っ張り出さない限り
そこでスクロール止まるんだからさ
表示されない列は無いのと一緒だろ?
あと名前使えよ
$A$1:$A$12320ってなんだよ
A1〜A12320とやらを「LA」、B1〜A12320を「LB」とでもすりゃ
かなり文字数削れんぞ
っと誤字
B1〜B12320を「LB」
な
>>596 A:Aより1文字ずつ減らせるし(例示されてる式なら8文字も減る)
動作も全走査より、範囲指定したほうが少しだけ軽くなるんだよ
598 :
507:2015/01/30(金) 13:43:38.29
スマートじゃないけど一応出来ましたのでクローズします
最初、既出座標のフラグを立てようとして循環参照で駄目だったのですが、
ひとつ前までの座標に次の座標が含まれてるかCOUNTIFで見れば良かった
Excelは基本一人で使うものじゃないから一緒に使う相手に振り回されることも多いよな
分かりにくいから関数使用禁止と言われた時には、それExcel使う意味ないだろwと頭かかえたもんだ
>>599 合計を電卓で計算するヤツもいるらしいからな
602 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 00:11:18.26
>>600 それはみんな分かっている
あえて言わないのがカッコイイんだぜ
言っちゃうと同レベルに落ちちゃう。がんばろう
603 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 01:35:12.00
>>601 小数点以下の計算をする時は、本当に電卓で計算したほうがいいこともあるけどなw
特に他人が作ったファイルで、消費税計算方法が適当な時
列によってROUNDUPだったり、ROUNDDOWNだったり、セルの書式設定だけだったりと
検算しないで痛い目にあった経験ありw
605 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 15:50:51.77
1/3
これを入力すると
1月3日
になりやがる。
こういう迷惑行為(迷惑機能)をやめさせるにはExcelにどういう設定をすればいい?
606 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 16:01:32.20
607 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 16:04:53.17
>>606 そんなことを記憶したくないんだ。
もっといい方法はないですか?
こんなくだらないことに脳のメモリを消費しないといけないとなると
世の中にはくだらないことだけでなくたのしいこともっと重要なことなどなどいっぱいあるので脳のメモリはすぐになくなると思うんだ。
>>605 表示形式を文字列にする
全シート全セルの表示形式を文字列にしたものをテンプレートにすれば
最初から入力値の自動判別機能は働かないし、
数式を入力したいセル、日付を入力したいセル、日付的な形式だが文字列として入力したいセルと
色々あるなら、それに合わせて個別に設定したらいいさ
609 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 16:16:05.04
>>608 なるほど、例外的な
>>606の方法よりは数段いい方法ですね。
でもそうやったらセルに関数を入れたとき機能しなくならない?
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 多少
【4 VBAでの回答の可否】 可
入力するテキストボックスとその文字からEXCELにある候補をリストボックスに表示する簡易サジェストみたいなものを作成しています
入力欄はキープレス処理で、そのたびに候補でセルを読み込んで表示って重い気がして
あらかじめ初期設定で取得してそこから自由に呼び出せれば
処理軽くなるかなと思ったんですが、そのようなこと出来るのでしょうか?
リストボックスの項目は重複する可能性もあり、候補の列番号なんかも保持しておきたいなと思った次第です
C++なら、変数を保持しておくパブリックメソッドを用意しておいて、使うときに参照するイメージです
>>609 1÷3という数式を入れたいのなら、=1/3と入れる手がある
1/3という文字を入れたいのなら、シングルクォーテーションを付けて'1/3と入れる手がある
1/3という文字は、日付・数式・文字列どれにも解釈できるのだから
何かしらの優先順位を付けて処理するように作ってあるのは仕方のないこと
魔法の道具ではないのだから、思い通りに行かないところはあるさ
俺はクオーテーション派
613 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 18:47:35.56
>>605 書式を分数にすれば、1/3といれればその通り入るけど
それじゃまずいの?
標準がそうなって内のが面倒ということかな?
614 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 18:47:47.38
>>613 そういうこと
標準を日付にするなって意見は年に2.3回ぐらい見かける定番のネタ
初めて使う4月に多い
616 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 19:08:34.69
>>610 2013から標準機能で、それに似た機能フラッシュフィルという
ものがあるらしい。
もし、それで済むなら、今回(2010)では、ありきたりのものを流用して
あまり作りこまないほうが得策かもという気もする。
617 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 19:10:51.70
>>615 めんどうということなのね。
小学生のうちは、分数が嫌い!なんて言っていたのに
今になって分数を使いたいななんて、贅沢!・・・とか。
618 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 21:32:33.05
ページ区切りモードで手動でページの区切りを入れた後に印刷すると
どのページも同じ縮小率で印刷されます。
そうではなく、エリアが狭いページでは拡大されてるように印刷、エリアが広いページでは縮小されてるように印刷、するにはどうすればいいですか?
619 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 22:00:55.69
>>618 普通に印刷範囲の設定をして
縮尺を1ページに印刷(縮尺を1x1ページ)に
設定してあれば、そういう風にならなかったっけ?
620 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 22:15:06.76
>>619 そうしたらページ区切りモードで手動でページ区切りを入れられない。
621 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 22:33:41.11
622 :
618:2015/01/31(土) 22:55:22.16
困ったなぁ
623 :
618:2015/01/31(土) 22:55:58.96
どなたかこのスレにExcelの神はいないものなのか・・・
624 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 22:58:32.22
>>618 カメラ機能使って別シートにリンク画像を設置
ctrl+pageup・pagedownでシートをまとめて選択
シートを全部印刷
とか
他はvbaがあるけど多分使えないだろうし
使えても相当にめんどくさいめんどくさすぎる
最小のエリアと最大のエリアがどれほど違うか判らんが、それが出来たとして
入力されてる文字・データなんかもその比率で拡大縮小されるんだけど、それはいいのか?
図形やテキストボックスの挿入なんかしてたら、比率によって位置がずれたりボックスからはみ出るか途切れるかするぞ?
そんなSheetを作っちまった自分を呪うか、或いはおれだったら・・
一ページ分ずつ別Sheetへリンク貼り付けしてレイアウト見るわな
【OSのバージョン】Win7
【Excelのバージョン】2010
【VBAが使えるか】初心者レベル
【VBAでの回答】関数で解決出来ないなら可
A列に性別(男性or女性)、B列に名前(青木、上田、太田…etc)を入力した時なのですが
VLOOKUPで男性を引っ掛けても一番上の青木しか抽出できませんが
男性の名前をすべて抽出するのはどうしたら良いでしょか
そもそも、Excelの印刷機能はオマケだからな
ワープロやDTPみたいな文書作成ソフトとは違って
計算ソフトであるExcelの印刷は、結果の確認さえ出来れば事足りるという扱い
どんなにExcelに詳しい人でも、ここの人たちはExcelを作り替えられるわけではないので
Excelに見当違いな望みを持つ者にとっての神はここには存在しない
居るとすればマイクロソフトって会社にだな
628 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 23:47:38.02
>>626 c1=if(a1="男性",b1,"")
c2=if(a2="男性",b1&b2,b1)
下にオートフィル
こんな感じでどんどん結合させていって最終列を参照する
もしくはフィルタをかけるかピボットテーブル
629 :
名無しさん@そうだ選挙にいこう:2015/01/31(土) 23:52:36.83
もしくは青木さん以外の男は性転換手術をしてもらい女性になってもらう
>>626 1つのセルにカンマ区切りとかで全て表示したいのか
1セルに1つの名前で、該当人数分の行数を使って表示したいのかでやり方は変わってくる
でも628も言ってるが、オートフィルタ掛けるのが一番簡単だろ
それに関数というか数式でも解決は出来るけど、数式は不定数の値を返すのが苦手で
データが増える度に、数式もフィルコピーなどで増えたデータの分だけ増やさないといけなかったりするので
関数で解決出来ないわけじゃなくても、オートフィルタでダメならVBAの方がスッキリ解決する
>>628>>630 すみません、本来やりたかったのは下記です
シート1
A列:数百件のデータ
B列:数千件のデータ
シート2
A列:数百件のデータ (シート1と数と内容に差異有)
B列:数千件のデータ (シート1と数に差異有)
シート3
A列:シート1のA列
B列:シート1のB列
C列:シート2のB列
この時C列に表示されなかったデータのみを抽出しようとしています
やはりVBAでやった方が良さそうですね…
組んでみて上手くできないようならVBAスレで質問します
>>631 全く判らないな
Sheet3は何したい?
626は別Sheetに男を全て抽出したいって事なら簡単
>>632 説明が下手で申し訳ありません。
シート1
A列:A-1、A-1、A-1、A-2、A-3、A-3、…
B列:1、2、3、1、1、2…
シート2
A列:A-1、A-3、A-3…
B列:1、1、2、…
シート3(比較用でシート1のコピー)
C列にはシート2のB列を抽出
シート1にはA-1が3つですがシート2には1つしかない、またA-2も存在しないのでC列の2-4行目が空白orエラー表示
A-3は両方に存在するので4行目からまた抽出
こんな感じです
634 :
名無しさん@そうだ選挙にいこう:2015/02/01(日) 02:51:46.99
>>633 シート1のB列はいらなくない?
不要な情報は極力削って
あと名前欄に631って入れて
それと例を10個ぐらいにして、最後に欲しい結果も出しておいて
このレベルのことで行き詰まる奴って、大抵説明も下手だから困るよな
もっとも、まともな説明できるくらいの標準的な頭があったら、この程度のことは
ヘルプとネット検索だけで解決できるから、それが出来ずにここに来る奴に
まともな説明が出来ないのは、整合性が取れた事象ではあるんだがな
636 :
631:2015/02/01(日) 14:42:55.24
>>636 作業列を使えばVLOOKUPで簡単に出来る
Sheet1
C3=IF(ISNUMBER(D3),D3,"")
D3=IF(VLOOKUP(A3&"_"&B3,Sheet2!D:D,1,0)=A3&"_"&B3,B3,"")
Sheet2
D3=IF(A3<>"",A3&"_"&B3,"")
>>637 質問者は2010環境だろ
2013からの関数使ってどうする
作業列が2013からの関数だとは初めて知ったw
640 :
名無しさん@そうだ選挙にいこう:2015/02/01(日) 17:33:11.90
ISNUMBER()は2010でも使えるよ
VLOOKUPはもちろんもっと古いだろうけど。何か勘違いしたかな
ISNUMBERは97でも使える
642 :
名無しさん@そうだ選挙にいこう:2015/02/01(日) 17:37:55.04
テーブル名をリネームしたら、スライサーに候補の一部しか表示されなくなった。
更新とかしてもダメ。
バグ直せよMS
643 :
名無しさん@そうだ選挙にいこう:2015/02/01(日) 17:38:15.50
んーまぁいいや。あまり煽る趣味はない。とりあえず作ってみtル
644 :
634:2015/02/01(日) 17:47:34.42
645 :
634:2015/02/01(日) 17:48:13.37
いらなかったのはシート2のB列だったな。まぁいいか
647 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 00:31:25.06
SurfaceでExcel使ってるんだけど、ここで質問していいのかな?
ExcelでSurfaceのペンを使ってるんだけど、ペンを有効にしてるときって手が画面に少し触れただけでペンが触れたと反応するんだけど、なんとかならないかな?
onenoteとかだどペン以外は反応しないようになってるから、Excelでも同じようにしたいんだ
詳しい人教えて下さい
>>646 >>637だけど
もしB列の値に数字以外が有る場合はSheet1の
C3=IF(ISNUMBER(D3),D3,"") を
↓
C3=IF(ISERROR(D3),"",D3) に変更してね
>>647 それはデバイスやOSの設定でExcelの設定じゃないからスレ違い
>>637 強引なVLOOKUPの使い方w
こんな使い方見た事無いな普通はMATCHだ
依頼者が知ってるからって無理して使わなくても
VLOOKUP で検索列の左側を検索することってできませんか?
INDEXをつかったところ、INDEXは難しいからVLOOKUPを使ってほしいと言われたのですが
なお、検索元のデータは、パスワードの保護がかかっています
>>651 作業列使えばおk
保護かかってるなら別シートに作業列作っちゃえば?
作業列使うならVlookupに治す必要なくね?
indexが難しいか?わかりやすいし便利だから覚えて損はないぞ
おまけに軽いしな
655 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 08:26:18.78
>>651 Vの付かないLOOKUPとか、VLOOKUPの多重ネストとか、
OFFSETとか、名前の使用とかまあ色々あるが
INDEX使うより更に難解になるよ
その事を文句言って来た輩に伝えたら?
「普通のVLOOKUP参照とは違った特殊な計算を必要としているので
INDEXを使っております。VLOOKUPに直す事もできますが、
VLOOKUPを使ったほうがもっと複雑で分かりにくくなりますよ」って
>>656 要するにそいつが
INDEX関数が何なのか知らない事を、勝手に難しいと称して伝えてる
んだろ。馬鹿によくある話だ。
VLOOKUPも次バージョンではマイナス列を設定出来るようになるかも?
>>658 もはや、ユーザ定義関数自分で作ったほうがいいだろそれ。
660 :
651:2015/02/02(月) 12:27:53.01
ありがとうございます
>>656に近い話をしましたが納得してもらえなかったので
>>659にあるユーザー定義関数に挑戦します
VLOOKUPM(表向きマイナス、裏向き無茶ぶり)で勘弁してもらおうかと
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
A列に日付
B列に曜日が入っています
C列に曜日毎の利用料金
D列に利用料金の支払い額を出したいです
木曜→月火水の利用料の合計(支払い額)
月曜→先週の木金の利用料の合計
月が変化する度にB列が変わるのでそのままSUMすることができません
if関数でやろうと思いましたが論理式がわかりませんでした
ご教授宜しくお願い致します
>>660 作業列作って、作業列を非表示
これでユーザー関数とか必要ないな
作業列便利だけど、調子に乗りすぎると作業列だらけになって
分かりやすくするための作業列が判りにくくしちゃうんだよな
>>661 オレなら1日の上に作業行とし前月末4日分のA列C列を参照する
Sheet2の1行を見出し行2〜5行を作業行とし
A2=LARGE(Sheet1!A$20:A$40,6-ROW())
C2=VLOOKUP(A2,Sheet1!A$20:C$40,3,0)
5行までコピー
D6=IF(WEEKDAY(A6)=5,SUM(OFFSET(D6,-3,-1,3,1)),IF(WEEKDAY(A6)=2,SUM(OFFSET(D6,-4,-1,2,1)),""))
下にコピー
VLOOKUPの「あいまい検索」はどういう用途があるのですか?
>>665 例えばテストの点数によってABCD・・・にランク付ける時に対応表を作り検索すれば良い
対応表だと判定点の変更も簡単だし十段階とかでも判りやすい
IFで十段階なんてやりたくないよね
ifとvlookup程度は理解してないと何も出来ないが此処の質問者は理解する能力も無いんだろうなきっと
ヘルプ見ても判らないってヤツは池沼かセンス無いからエクセルには向いてない
668 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 18:03:17.33
Alt+Enterでセル内改行を行ってるセルがいっぱいあるのですが
これを消して普通の一行にするにはどうすれば一番簡単にできますか?
670 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 18:49:02.44
671 :
651:2015/02/02(月) 18:52:10.03
>>662 作業列は元データを直接検索しないのがわかりにくいと言われNGでした
なんとかINDEXとMATCHベースのユーザー定義関数設定をできましたので、それでOK出ました
ありがとうございました
672 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 19:28:33.06
674 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 20:18:25.95
>>673 暇を持て余している方が作ったミエ
下から2行目「aのところまで」の意味がわからないので無視ミエ
Sub Macro1()
D = Range("A1")
A = Split(CreateObject("WScript.Shell").Exec("%ComSpec% /c dir " & D & " /s /a:d /b | sort").StdOut.ReadAll, vbCrLf)
For r = LBound(A) To UBound(A) - 1
B = Split(A(r), "\")
c = UBound(B)
Cells(r + 2, c + 1) = B(c)
Next
End Sub
676 :
673:2015/02/02(月) 21:23:33.53
>>674 んー、なぜかコンパイルエラーになってしまいます・・・
>>675 $RECYCLE.BINとか、System Volume Informationとか
ワケワカランのも書き出してくれたけど、概ね満足です。
ありがとうございました。
>>676 $RECYCLE.BINなどを出したくないなら3行目の「/a:d」の部分を「/a:d-s」に変えるといいミエ
678 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 21:48:51.56
$RECYCLE.BINが来たらgotoで飛ばすよろし
679 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 22:01:01.32
680 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 22:46:45.93
>>679 さえないかどうかはおいておいて、それぐらい年取らないとexcelの達人なんてなれない
できることが多すぎて覚える範囲があまりにも広すぎる
継続は力なりの代表格だと思う
ピボットテーブルの表に現れた備考欄から、そのソースのテーブルの備考欄に簡単に書きこめる仕組みが作りたいのだが…
上手い手は無い物か?
682 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 23:26:58.89
無い。ピボットはあくまで計算結果と思うといい。
横にでも書こう。
683 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 23:43:27.43
>>680 たかがExcel。
そんなに長年使って勉強して研究しなきゃ使いこなせないなんてなにかが間違っている。
そもそもExcelというソフトを作ったプログラマのセンスがないんじゃないか?
こんなわりと汎用的でビジネスでよく使うソフトは誰でも簡単に使いこなせる仕様になってることが最重要だと思うのですが。
べつに全部の機能を使わなくてもいいんだよ?
人によって必要な機能は違う
機能の違うソフトをたくさん作り分けるより、全部の機能を入れといた方が簡単
685 :
名無しさん@そうだ選挙にいこう:2015/02/02(月) 23:52:11.96
>>683 Excel批判したいなら雑談スレがあるよ。
ここは質問スレ。
>>682 ああ、やっぱりw
オリジナルのソースが簡単に改竄されたら困るしねぇ。
ミエ ←どういう意味?
688 :
名無しさん@そうだ選挙にいこう:2015/02/03(火) 01:46:04.45
v..v
ミ□ミ
>>664 また必要無いのにOFFSET
アンチOFFSETのワシに喧嘩売っとるん?
>>679 その人、達人と呼ぶにはまだまだ程遠いよ
単に広い範囲の機能の触りを浅く網羅しただけの「初心者の救世主」
あと、不適切とかのレベルも多いが、明らかな間違いを書いてることもそこそこあり
プライドが高いのか指導してあげても修正しないので、仕事で使う場合は
彼の本やサイトで触りを覚えたら、他で裏付けを取ってから使うようにした方がいい
例えばLike演算子の解説では
Like "[!東京,横浜,千葉]*"
で、「東京」、「横浜」、「千葉」以外という意味になると解説しているが、
Like演算子のcharlistでは、カンマは区切り文字としての機能を持たないので、
「東」、「京」、「横」、「浜」、「千」、「葉」そして区切り記号として扱われず文字扱いな「,」以外という扱いになり
「東京」、「横浜」、「千葉」だけでなく「京都」、「横須賀」、「浜松」、「千歳」なんかも除外される
自分でヘルプからLikeで使えるパターンをコピペしてきてるのに
[textlist]ではなく[charlist]なんだから、文字列ではなく単一文字として扱われるってことにも気付けず
(まともなプログラマーなら、char=単一文字、text=文字列は常識だし、プログラムじゃなくてもCHAR関数は単一文字しか返さない)
自分がコピペしてきた使えるパターン内に、! が否定記述という解説はあっても , が区切り文字という解説は無いのにそれにも気付かず
また、仮に , が区切り文字として使えるかもと思って試すなら、先に挙げた「京都」、「横須賀」、「浜松」、「千歳」などを
含めたデータで試すべきなのに、, が区切り文字として使えなくても結果が変わらないようなサンプルデータを用意してしまう
そう責める程じゃない単純なミスのように見えるかもしれないが、そのミスに気付ける要素はいくつもあるのに
それを全て取りこぼした挙げ句に、間違いを指摘されても修正しない、結局彼はそんなレベル
>>690 そういうサイトは、そのままコピペすれば使えるわけじゃないから、多少間違えといても問題ない気もする
関数の説明そのまま読んだだけだと使い道わからないものをこういう時に使うと便利的なことがわかれば良いんだし
俺もINDIRECTの説明見て何に使うんだこれ、なんて思ってたが、サイト見て
同じ形式の別表を検索するのに使うと恐ろしく簡単になるなんて知った口だし
それまでは、IFで表ごとに選ぶなんて非効率なことしていた
ただ、サイトを鵜呑みにして間違えて定義を覚えちゃうと痛い目を見るかもね
>そう責める程じゃない単純なミスのように見えるかもしれないが、そのミスに気付ける要素はいくつもあるのに
>それを全て取りこぼした挙げ句に、間違いを指摘されても修正しない、結局彼はそんなレベル
マジか?
Q&A掲示板に質問したら削除されたり?
693 :
俺もな〜:2015/02/03(火) 08:02:57.57
人の些細な間違いをあげつらうしあできない、結局
>>690 はそんなレベル
オレもINDIRECTやOFFSETはサイト見て知った
>>690 その人は「教え方が上手い」んだよ
お前みたいにやたらと無駄に長ったらしい癖に説明が下手糞な奴と真逆でなw
「その人にかかれば、誰でもExcelがわかるようになる」…それが達人たる所以
Office田中参考にしてるよ
プログラミングなんて全然わからなかったけど割と使えるようになった
別に困らないから裏取る意味もないや
間違いだと知ることもまた勉強ナリよコロ助
俺も田中にメール送ったことあるわ
Likeの説明が間違ってますよ、って
当たり前だけど、みんな気付いてたんだな
で、意地でも直さないのか
とりあえず、謙虚さが足りないことはよくわかった
そういや中学の時、間違いを指摘したら逆ギレした先生がいたっけなあ
700 :
名無しさん@そうだ選挙にいこう:2015/02/03(火) 11:52:51.46
データの入力規則で
正の5の倍数だけを「リスト」で表示させるにはどうしますか?
もちろん数学的には正の5の倍数は無限個ありますが。
>>671 自分で数式を組まない人ほど作業列を嫌がるよな
うちも作業列と名前の定義は無意味に複雑にするとして使用禁止だわ
ルールだから従ってるけど、作業列使った方がむしろ分かりやすいと思うんだがな
つまり田中はOffice版の池上彰みたいなもんか
池上のニュース間違いだらけだけど素人から支持されてるもんな
俺なんか、A1〜FN112のシートに対して、FP113〜HR326を作業列にしてるけど
作業列が嫌だって言われた事1度も無いなぁ…
逆に自分のシート半分も使いこなしてない人が多くてモニョってる
ちゃんとシートの説明書つけてるのに読んでくれないんだよね
>>700 5の倍数しか入力しないなら、直接入力してもらったほうが速いだろ
何万何億もある5の倍数をスクロールして選択とか操作性として糞以下だわ
5の倍数じゃなかったら隣のセルにエラー表示出すとかにすればいいんじゃね?
>>700 作業列使えよ
例えば C1=ROR()*5 下にコピー
入力規則でリスト選択し C1:C1000
>>706 自己訂正
誤 例えば C1=ROR()*5 下にコピー
正 例えば C1=ROW()*5 下にコピー
>>700 無限個あるうちの、いくつまでをリストに出したいの?
リストの「元の値」には有限個のデータしか設定できないけど、限界まで入るだけ設定したいってこと?
ピボットテーブルの数値のグループ化について相談。
不等間隔でのグループ化は出来ないでしょうか?
多分出来ないと思いますが。
710 :
631:2015/02/03(火) 17:00:08.71
私女だけど本当に困ってます><
【1 OSの種類 .】 Windows7〜
【2 Excelのバージョン 】 Excel2003以降
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
で、で、今どうゆーことで困ってるかというとね、
日付関数でNヶ月後の日付を取得したいの。
EDATE関数はアドイン使わないとだめでしょ?
でもね、でもね。。。使いたくないんだ、アドイン。
EDATE関数(アドインの分析ツール)を使わずに、強引にNヶ月後の日付を取得したいとき、
頭のいいと人はどう対処するんですか><
>>711 =MIN(DATE(YEAR(A1), MONTH(A1)+N, DAY(A1)),DATE(YEAR(A1), MONTH(A1)+N+1,0))
713 :
名無しさん@そうだ選挙にいこう:2015/02/03(火) 18:45:47.65
>>711 A1に日付が入ってるとして、5ヶ月後ならこんな感じ。
=DATE(YEAR(A1),MONTH(A1)+5,DAY(A1))
>>713 それだと1/31の1ヶ月後が3/3になる
EDATEだと2/28になるから結果が異なる
>>664 返信が遅くなりましたが有り難う御座います!!
早速先月分をSheet1として作ってみましたがどうにもうまく行きません
4つある作業行のA列中2つは先月30日と31日になりましたが上下2つがうまく処理できていないようです。
四苦八苦してみましたが
A$20:A$40
が何を参照しようとしているのか理解出来ず改善出来ませんでした
>>715 >A$20:A$40
これはVLOOKUPの検索範囲で
前月末の4日間がA列の20行〜40行の間にあれば問題ありません
717 :
名無しさん@そうだ選挙にいこう:2015/02/03(火) 20:20:28.47
>>715 念のために確認しますが664の指定どおりの行にレイアウトしてますか?
あと日付に文字列のデータが混じってたりしてませんか?
こちらで動作確認済みですので
719 :
673:2015/02/03(火) 21:36:00.45
>>677 凄いぃぃぃぃぃぃぃぃいいぃぃぃぃいぃぃぃっぃぃいいいぃぃぃぃいぃぃぃぃぃい
何がどうなって書き出すのかマタークワカランのですが、うまくいきました。
エクセルを起動した直後にやると1分くらい掛かるのに、
一度やって消して、再度実行すると一瞬で終わるんだけど
Windowsの仕様なのかな?
>>690 平日の朝っぱらから長文でwwwww
お前、VBA厨だろwwwww
>>719 HDDの内容がキャッシュメモリに保存されるから、2回目以降は早くなるミエ
723 :
俺もな〜:2015/02/03(火) 22:44:23.41
>>702 具体的な事例でもあげてるならともかく、一般的な話で曲がりなりにでも顔出して喋ってる池上と、にちゃんぐだぐだ言ってるだけのお前じゃ勝負にならんぞ w
>>707 それリストにするより、5の倍数になる数字のみ入力できるセル作った方が楽な気がするなんて思う初心者
もしくは、一行目に0二行目に5をいれて、セルの右下を引っ張って
一番下まで広げてその列をリストにしちゃうか
確か単純に5をかければ20万ぐらいまでは選択できるようになるはず
>>725 そうですね
706、707は思いつきの例にすぎないがヒントにはなったでしょ
>>726 まあね
関数でやろうとして、A列に数字並べて
=IF(A1/5=INT(A1/5),"",A1)
リストの空白行を無視するにチェックすればできるだろ、で見事に玉砕したレベルからすればの話だし
空白行って数式の結果の空白表示じゃなくて、何もいれてないの空白なのな
>>724 うわっ有り難う御座います御手数お掛け致します……
結局作業行1行目は標準→日付で先月29になったのですが4行目が#NUMのまま、月初めの支払合計だけが出ないと言う状態でした(2週目以降は問題なし)
おそらく本当は上から順に先月の28日29日30日31日(31日まである場合)とならなければならないんだろうとは思いますが6-ROWに原因があるのかな?とか考えつつよくわからない状態で色々試してみましたがわからずじまいでした
>>729 判りにくそうなのでチョット説明
A2=LARGE(Sheet1!A$20:A$40,6-ROW()) Sheet1A列20〜40行で4番目に大きい値、6-ROW()=4
A3=LARGE(Sheet1!A$20:A$40,6-ROW()) Sheet1A列20〜40行で3番目に大きい値、6-ROW()=3
A4=LARGE(Sheet1!A$20:A$40,6-ROW()) Sheet1A列20〜40行で2番目に大きい値、6-ROW()=2
A5=LARGE(Sheet1!A$20:A$40,6-ROW()) Sheet1A列20〜40行で1番目に大きい値、6-ROW()=1
A2の数式をオートフィルで下にコピーしたいので面倒な記述をしています
またA6の値を基準とし、A5=A6-1、A4=A6-2、A3=A6-3、A2=A6-4 でも良いですし
A2〜A5は空白で、C2〜C5=VLOOKUP($A$6-(6-ROW()),Sheet1!$A$20:$C$40,3,0) でも良いのですが
今回のようにミス等を発見しやすいのは最初の方法かと思いました
>>730 うおぉ理解出来ました!!
出来上がったのを参考に試しにシート分けを先月/今月(料金と支払いをそれぞれに)ではなく料金/支払(2ヶ月分をそれぞれに)でシートを分け、かつ支払いの設定を月火水→その週の金、木金土→翌週の火に設定し作り直してみても出来ました!!
凄くスッキリしましたし今回用いた関数も覚えることが出来ました本当に有り難う御座います。
>>723 顔も出さずに2chで何ぐだぐだ言ってるの?って突っ込み待ちですか?
って書こうとしたら、この子、名前欄に予防線張ってたよw
池上信者って本当に害悪だな
池上の適当説明を裏も取らずに真に受けて鵜呑みで妄信
少しでも指摘されると顔真っ赤にして池上擁護
創価学会員に通じるものがあるな
734 :
名無しさん@そうだ選挙にいこう:2015/02/04(水) 20:10:55.34
>>733 そんな君も同類になっちゃうよ
頑張って耐えて
>>732 > 名前欄に予防線張ってたよw
お前みたいな粘着が絡んでくるからな w
アベ信者って本当に害悪だな
アベの適当説明を裏も取らずに真に受けて鵜呑みで妄信
少しでも指摘されると顔真っ赤にしてアベ擁護
創価学会員に通じるものがあるな
737 :
名無しさん@そうだ選挙にいこう:2015/02/05(木) 00:40:38.37
>>736 そんな君も同類になっちゃうよ
頑張って耐えて
Excel信者って本当に害悪だな
Excelの適当仕様を裏も取らずに真に受けて鵜呑みで妄信
少しでも指摘されると顔真っ赤にしてExcel擁護
創価学会員に通じるものがあるな
>>738 ま、確かにたまにここでも嘘教えている奴いるもんな
ありがとうと答えているレスあるのに実際に張り付けるとエラーになるものもある
その辺は仕方ないと割りきって使うしかないな
ミエ ←どういう意味?
741 :
名無しさん@そうだ選挙にいこう:2015/02/05(木) 20:35:11.81
v..v
ミ□ミ
>>664 また必要無いのにOFFSET
アンチOFFSETのワシに喧嘩売っとるん?
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel 2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
複数のシートに同じ計算式を参照する方法はありませんでしょうか。
それぞれのシートのA1に会社名を持ってきて
=SUMIF(元データ!A:A,$A$1,元データ!B:B)
という計算式を載せようと考えているのですが、
近々元データの列構成が変わるため一か所修正すれば
全部修正できるみたいなことができたらと考えております
INDIRECTでやってみたところ、うまくいかず
マクロを使用しない場合最悪手作業で全部修正するしかないのでしょうか
>>742 確かに必要性は無いけどoffsetはキーボードで直接数式を打つには直感的で便利
木曜→月火水の利用料の合計だと、3日前から3日間→SUM(OFFSET(D6,-3,-1,3,1)
月曜→先週の木金の利用料の合計だと、4日前から2日間→SUM(OFFSET(D6,-4,-1,2,1)
マウスで範囲選択するなら、SUM(C3:C5)とSUM(C2:C3)以外の選択肢はありません
>>743 基本的にはVBAが使えないなら手作業でしょ
具体的なシート構成が判らないので何とも言えないが
A1セルに文字列で
20150201 と入ってる日付を
今日より前の場合赤セルにする条件付き書式を教えて下さい。
検索しても
yyyy/mm/ddの結果ばかりで探せなかったので、よろしくお願いします。
>>746 ルールの種類を数式にして
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))<TODAY()
>>746 =A1-20108165<TODAY()
>>745 やはり無理ですか
マクロありなら、オフィス田中さんのところにあるユーザー定義関数でできるのは確認してます
私の環境がマクロ使用禁止な以上諦めるしかないですね
配列数式多用したワークシート作ったら重い、重い。
マクロ、VBAの使用解禁したら軽く出来る可能性はあるのかな?
>>750 お勧めはしないが
残業時間にでも内緒で数式を変更するマクロを1回走らせる手もある
終わったらモジュール開放すればバレないと思う
>>751 VBA使用禁止じゃないから実務で配列数式使った事ないな
VBAなら数式ゼロにも出来るから
もちろん軽くなると思う
754 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 13:05:51.82
>>743 何とでもできるぞ。
・設定シートを作り、
設定シートA2 = 元データ!B:B
設定シートA3 = 元データ!C:C
各出力シート=SUMIF(INDIRECT(設定!a2),A1,INDIRECT(設定!a3))
みたいにするか、
・見出しがあればhlookupやらmatch辺りで一行目の見出しを取得、indirectに投げる
など
配列数式の入ったセルがの並んだテーブルがあります。
テーブルのセルの中には return だけで、ctrl+shift+return し忘れたのが複数あります。
配列式の入った全セルに一挙に ctrl+shift+return かます方法は無いでしょうか?
>>756 おお、あり。
VBAマクロで解決ですか。
帰宅したら試してみます。
>>754 そういう方法もあるのですね
仕方ないから、各シートにINDIRECTで割り振るための作業列の隣列に
INDIRECTでシート名割り振る数式で
作った数式をコピペしていくしかないかなとか考えてました
まだ試していませんが、そちらの方が良さそうですね
Ifで、aがある条件に合致したら、変数bにワークシートを割り当てます。
その後、変数bに割り当てられてなかったら あ を実行するにはどう書けばいいですか?
思いつきで If b Is Not Nothing Then と書いたらコンパイルエラーで
「オブジェクトの使い方が違うんぢゃヴォケ!!」と怒られてしまいました・・・
Sub test()
If a = "おかもとまり" Then Set b = Worksheets("つい最近までバージンだった")
'略
If b Is Not Nothing Then
あ
End If
End Sub
760 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 20:51:18.12
b is Nothing が trueだかfalseになるんだから
notはb is Nothingの前に来る
not b is Nothing
と思う。試してないけど
>>759 If Not b Is Nothing Then
英語的には違和感あるけど Not は演算子なので
>>759 そう書きたくなる気持ちはわかる
If Not b Is Nothing Then
763 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 20:59:28.33
ケコーンオメ
【 システム環境 】 Windows7
【 VBAが使えるか 】 はい
【 VBAでの回答 】 可
【 検索キーワード 】 売上計算 多数要素
複数顧客の、取引開始もバラバラ
取引開始から2カ月の単価は割安だけど、
以後は単価が変わり、
年1回、不定期に単価が変わります。
納入も不定期。
オーダーされた総数を納めて、総額を計算します。
これだけの変動要素があるのを、
顧客ごとに管理出来るようにするって、エクセルで可能でしょうか?
最終的な出力は、相手への請求書ですけど、相手にも分かりやすい計算明細書を作りたいです。
入力は、顧客IDと、取引開始日と、納入日と数量、だけにしたいです。
よろしくお願いします
765 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 21:39:22.15
すまん教えてくれ。
かなりの初心者だから訊き方がまずかったらごめん。
(1)点数を手入力して
(2)順位を出して
(3)その順位を元に、プラスマイナス何点する
にはどうしたらいいんだろう。
if構文で色々やってみたんだけどエラー連発でわからん。。。
例えば1位だったら+500するとか、4位だったら-500点とか
麻雀みたいな計算なんだが。。。
RANK()関数で順位出して、その隣の列でif文か、得点表からIndex()で拾うとかじゃダメなん?
>>765 Rank またはlargeかsmallと、
Vlookupで出来そう
768 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 21:55:23.23
>>766 >>767 レスはえぇ。。。
ありがとう!Rankまではすぐにわかった!ありがとう!!
そこから難航しているが、Vlookupをもうちょっと掘り下げて、
改めて基本から勉強してみるわ!!ありがとう!!
769 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 21:59:51.84
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否 (代替手段が無く簡易であれば使いたい)
1件につき、B2,C2〜と横に30項目程数値を打ち込み、2件目はB3,C3〜と同様にデータ入力が必要なのですが、
1件目の最後の項目から2件目の1項目目、1つ下の段にスムーズに移動できる設定とかはありませんか?
入力する項目は空欄になる場合もありますが、全て同じです。
>>764 可能か、不可能か、という質問なら可能
かなり複雑な案件なので、無料で回答できるのはここまで
771 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 22:05:31.74
>>764 可能。ただ表じゃなくデータベースっぽく作る必要がある
>入力は、顧客IDと、取引開始日と、納入日と数量、だけにしたいです。
これは諦めた方がいい
もしやるならvbaでフォームを作った方がいい
vbaを使いたくないなら都度入力した方がいい
>>769 ExcelのオプションでEnterを押した時の移動方向を右に設定して、データを入力したい範囲を選択してから入力すれば、
右端の次は1つ下の左端に自動的に飛びます
773 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 22:08:14.52
>>769 範囲選択して、enterを使わずにtabだけで入力を確定させればok
>>770-771 作ってはみたけれど、データ無しで580kbになりました。
主にVlookup関数。入力シートと、計算用シート、単価の表シート、出力シートの構成です
なんか、簡略化出来る方法がないものかと、悩んでます。
775 :
769:2015/02/06(金) 22:14:49.81
>>772,773
即答ありがとうございます。後出しで本当に申し訳ないのですが、
現在その方法を使っていて、セルが暗くなるので他にスマートな方法があればと。
やはりこの場合その方法が簡単で一般的なのでしょうか。
そんなにファイルサイズでかくないし、コードメンテ出来るならまあいいんじゃ?
自分も趣味で使ってるバイナリ弄るためのxlsファイルも同じくらいのサイズあるし。
777 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 22:16:46.98
>>774 エクセルファイルの容量なんてどうでもいい。100Mぐらいあっても気にしない。びっくりはするけど。
問題は重さ。入力のたびに5秒かかる、とかだと使い物にならんからな
びっくりはするんだ‥
779 :
759:2015/02/06(金) 22:18:36.28
>>760-762 ありがとうございます。
しかーし、「実行時エラー424 オブジェクトが必要なんぢゃヴォケ!!」って怒られました(´;ω;`)
>>776 もしかしてオイラへのレス?ありがとです。
基本、マクロなしで出来てます
781 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 22:19:00.05
>>775 2010だとB2-D2打った後、enterでB3に行くんだけどね。
2003でオプションで設定できるかは知らない。
ネット喫茶で触ってみて、良さそうなら買い替えも検討してみては
783 :
名無しさん@そうだ選挙にいこう:2015/02/06(金) 22:21:46.15
>>779 知らんよ。setしてないかどっかで解放されてる。下を見て頑張って
Sub a()
Set b = Cells(1, 1)
Set c = Nothing
MsgBox (Not b Is Nothing)
MsgBox (Not c Is Nothing)
End Sub
>>779 ああそうか、そのコードでIfが実行されないとbはVariant型になるんだな
じゃあプロシージャの先頭に
Dim b As Object
って入れるといいよ
785 :
759:2015/02/06(金) 22:24:02.91
自己解決
Dim b As Worksheetって宣言したらおkでした。
786 :
759:2015/02/06(金) 22:25:26.88
787 :
759:2015/02/06(金) 22:26:27.62
x ありがとうごあじまうs
o ありがとうございました
2ちゃんが重い
結婚しまくり
>>764 > 年1回、不定期に単価が変わります。
> 入力は、顧客IDと、取引開始日と、納入日と数量、だけにしたいです。
つまり、単価はエスパーしろと
すまんが俺には無理だわ、他をあたってくれ
>>785 とりあえず Option Explicit つけとけ
面倒くっさw
>>789 単価の変動日は、既定。
納入日の間にあれば、適用。
と、ややこしいです
>>775 入力するところを右クリックでセルの書式を設定して、
ロックを外しておいてシートの保護をしたらどうだろう
入力してエンターを繰り返していれば、
ロックされているところの手前で勝手に改行されるし
>>792 請求書をつくるなら、キーは顧客IDではなく注文番号にすればいい。
単価が変わろうが、発注先が変わろうが全て解決w
>>764 商品が1つなのか?
だったら簡単じゃん
逆に何が判らないのかが不思議
判らない所を具体的に質問すべきだと思う
>>775 特に何か設定や選択をしなくても、
B2から一番右端まではTabで確定・移動(カーソルキー厳禁)
右端を入力したらEnter
で希望通りに動くはずなんだけどね
入力したらEnterって癖がついてると、慣れるまで少々骨が折れる
>>792 > と、ややこしいです
で、どうややこしいかはエスパーしろと...
>>794 つ【入力は、顧客IDと、取引開始日と、納入日と数量、だけにしたいです。】
発注するのに注文番号を設けないなんて、マトモな会社じゃないねw
>>796 本人だけならそれで良くても、中途半端にスキルがあると思い込んでいるような人に
入力を頼むとなるとそうやればいいという指示をしても無視されて
やりにくいと言われるだけだろうからな
それで設定で、という話になるんだろう
>>793みたいに入力すべきところ以外は全部ロックするのが一番楽だよ
>>796 横レスだけど知らんかった。
勉強になる。
TabとEnterで逆の動きは出来ないみたいだね。
Enterを下に設定すれば
下 Enter
右 Tab
上 Shift+Enter
左 Shift+Tab
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
計算した後に印刷する書類としてエクセルの表を使っているのですが
上司から「数字を入力してる時も、紙と同じ余白が見えてないと、気分が悪い」 と言われまして
表計算画面でも印刷プレビューのように余白を表示する方法は無いでしょうか?
ちなみに、上下左右何セルかの、セルによる余白を作った表を提出したら
「表計算の表は空の部分なんか作らず、印刷出来る範囲の端から端まで使え!
紙が勿体無いだろ!」と言われて却下でした
よろしくお願いします
>>802 それ上司にいじめられてる
転職をおすすめします
使用環境がXPと97って時点で職場環境も劣悪なんだろうなと想像できる
なんてクソ上司w
もう画面の端に白い付箋貼っちゃえよw
どうしてもっていうならシートコピーして片方は入力用もう片方印刷用にして全部入力用のデータを参照するようにしてそれぞれ整形かな
Excel2007以降なら普通に余白が表示できるのに・・・
表示させたい理由が「気分が悪い」って(笑
気分って(笑
ひでー上司だな
素直に言うこと聞いてたら、どんどんエスカレートするぞ
807 :
名無しさん@そうだ選挙にいこう:2015/02/07(土) 19:29:47.88
>>802 それそのままその上の上司に相談した方がいいレベル
>>802 上と左に、使わないセルの行列を入れとけば?
多分ふたりしか居ない職場だろw
余白用のセル入れといて印刷範囲指定すればいいかもね
ただ古いexcelって印刷範囲指定すると妙に重くなった気がする
>>806-807 このスレやたらと上司に恵まれない質問者が多いよなw
無茶振りされても、立場のせいで何とかしないとということで
このスレに来る人が多いというのもあるだろうが
>>802 紙がもったいないって意味がわからんな
余白のせいでページ数が増えたわけじゃないんだろ?
>上司から「数字を入力してる時も、紙と同じ余白が見えてないと、気分が悪い」 と言われまして
上司も数字を入力するのかな?
マネージメントができない上司って・・・ステキ(はぁと
余白は解る
終端がないって言うのか、A列より左にセルが隠れてるんじゃないかって感じがするし
A列左と1行目上は罫線を引いてても見えないし、なにかと使いづらいから
>>810言うようにA列と1行目は幅縮めて余白として使ってる