Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【iPhoneアプリ】四字熟語をクイズで楽しく学べるiPhoneアプリ|ひらめき国語村 四字熟語編

普段このブログでは、Excelマクロ(VBA)やPython、Seleniumなど、主に業務効率化やプログラミング関連の記事を書いています。

今回は少し趣向を変えて、個人で開発したiPhoneアプリをご紹介します。

その名も、「ひらめき国語村 四字熟語編」です。

四字熟語を「クイズ」で覚えるアプリです

四字熟語というと、

  • 意味を覚えるのが大変

  • 漢字を間違えやすい

  • 覚えてもすぐ忘れてしまう

というイメージがあるかもしれません。

このアプリでは、ただ一覧を見るのではなく、クイズ形式で答えながら覚えることで、自然に四字熟語を身につけられるようにしました。

中学・高校の国語学習や受験対策はもちろん、一般教養や脳トレにも使える内容になっています。

主な機能

1. クイズ形式で四字熟語を学習

穴埋め問題や並び替え問題を解きながら、四字熟語を学べます。

「読むだけ」よりも、「考えて答える」ことで記憶に残りやすくなります。

ゲーム感覚で進められるので、勉強が少し苦手な方でも取り組みやすいと思います。


2. 正解率をチェック

問題を解いた結果は、正解率として確認できます。

どれくらい理解できているかが分かるので、

  • 苦手な熟語の把握

  • 復習の目安

にも役立ちます。


3. 四字熟語一覧で復習

学習した四字熟語を一覧で確認できます。

クイズで覚えて、一覧で見直す、という流れで使えます。


4. ランキング機能

結果に応じてランキングも確認できます。

少しゲーム性を加えることで、継続しやすくなるようにしています。

このアプリを作った理由

これまでに、

  • ひらめき数学村

  • ひらめき国語村 百人一首編

といった学習アプリを作ってきました。

その流れで、「四字熟語もアプリにしたら面白いのでは」と思い、今回のアプリを作りました。

プログラムを書いていると感じるのですが、

「覚える」ことも、「仕組み化」すると続けやすくなる

ことがあります。

学習も同じで、

  • 少しずつ

  • 繰り返し

  • 楽しく

続けられる形にできれば、身につきやすいのではないかと思っています。

普段とは少し違う記事ですが…

このブログでは普段、ExcelやPythonを使った自動化の記事を書くことが多いですが、こうしたアプリ開発も個人的に続けています。

技術的なことだけでなく、

「作ったものを形にして公開する」

というのも、なかなか面白い経験です。

もし四字熟語に興味がある方や、お子さんの学習用アプリを探している方がいれば、ぜひ一度使ってみてください。

アプリはこちら

ひらめき国語村 四字熟語編アプリ - App Store

 

 

 

【Excel VBA】シートを名前で取得する方法(初心者向け)

Excel VBAでは、特定のシートを操作するために
シートを名前で取得することがよくあります。

この記事では、シンプルかつ実用的な方法を解説します。


基本:シート名で取得する

 
Sub GetSheet()
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    MsgBox ws.Name
End Sub

👉 「Sheet1」を取得できます


直接操作する方法

変数を使わずに書くこともできます。

 
Worksheets("Sheet1").Range("A1").Value = "テスト"


Sheetsとの違い

 
Sheets("Sheet1")

👉 すべてのシート対象(グラフ含む)

 
Worksheets("Sheet1")

👉 通常のシートのみ(推奨)


よくあるエラー

 
Worksheets("存在しない")

👉 エラー

 
Subscript out of range


安全に取得する方法(実務)

 
Function GetSheetIfExists(sheetName As String) As Worksheet

    Dim ws As Worksheet

    On Error Resume Next
    Set ws = Worksheets(sheetName)
    On Error GoTo 0
    Set GetSheetIfExists = ws

End Function


使い方

 
Dim ws As Worksheet

Set ws = GetSheetIfExists("Sheet1")

If Not ws Is Nothing Then
    MsgBox "存在します"
End If


まとめ

シートを名前で取得する基本はこれです。

 
Set ws = Worksheets("Sheet1")

 

 

 

 

 

 

 

 

 

【Excel VBA】シートを追加・削除・コピーする方法まとめ(初心者向け)

Excel VBAでは、シートの操作(追加・削除・コピー)は非常によく使います。

例えば👇

  • 新しいシートを自動で作成

  • 不要なシートを削除

  • テンプレートシートをコピー

この記事では、シートの追加・削除・コピー方法をまとめて解説します。


シートを追加する方法

最も基本的なコードはこちらです。

 
Sub AddSheet()
    Sheets.Add
End Sub

👉 新しいシートが追加されます(通常は一番前)


位置を指定して追加

 
Sheets.Add After:=Sheets(Sheets.Count)

👉 一番最後に追加されます


シートを削除する方法

 
Sub DeleteSheet()
    Sheets("Sheet1").Delete
End Sub


注意(重要)

削除時は確認メッセージが表示されます。

これを消す場合👇

 
Application.DisplayAlerts = False
Sheets("Sheet1").Delete
Application.DisplayAlerts = True

👉 自動処理では必須テクニック


シートをコピーする方法

 
Sub CopySheet()

Sheets("Sheet1").Copy

End Sub

👉 Sheet1のコピーが作成されます


別の場所にコピー

 
Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)

👉 一番最後にコピー


よくある使い方(実務)

テンプレートシートをコピー

 
Sheets("Template").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "新規シート"


まとめ

操作 コード
追加 Sheets.Add
削除 Sheets("名前").Delete
コピー Sheets("名前").Copy

 

 

 

 

 

 

 

 

 

【Excel VBA】すべてのシート名を取得する方法(一覧表示・ループ処理)

Excel VBAでは、
すべてのシート名を取得する処理がよく使われます。

例えば👇

  • シート一覧を作る

  • 自動処理の対象を確認

  • ログ出力

この記事では、シート名を取得する方法を初心者向けに解説します。


基本:For Each で取得する

最もよく使う方法はこちらです。

 
Sub GetSheetNames()

    Dim ws As Worksheet

    For Each ws In Worksheets
        Debug.Print ws.Name
    Next ws

End Sub


実行結果

 
Sheet1
Sheet2
売上
データ


シート名をセルに出力する

一覧としてExcelに出したい場合👇

 
Sub OutputSheetNames()

    Dim ws As Worksheet
    Dim i As Long

    i = 1
    For Each ws In Worksheets
        Cells(i, 1).Value = ws.Name
        i = i + 1
    Next ws

End Sub


結果

A列
Sheet1
Sheet2
売上

Sheets を使う場合

 
For Each sh In Sheets
    Debug.Print sh.Name
Next sh

👉 グラフシートも含まれる


よくある使い方

特定の名前を探す

 
If ws.Name = "売上" Then
    MsgBox "見つかりました"
End If


注意点

シート名は一意

同じ名前のシートは作れません。


まとめ

シート名を取得する基本はこれです。

 
For Each ws In Worksheets
    Debug.Print ws.Name
Next ws

 

 

 

 

 

 

 

 

 

 

【Excel VBA】シート数をカウントする方法(初心者向け)

Excel VBAでよくある処理の1つが
**「シートの枚数を数える」**です。

例えばこんな場面で使います。

  • シート数に応じて処理を変える

  • 全シートをループする前に確認

  • 管理用のチェック処理

この記事では、シート数をカウントする方法をわかりやすく解説します。


基本:Sheets.Count を使う

最もシンプルな方法はこれです。

 
Sub CountSheets()
    MsgBox Sheets.Count
End Sub

 


 

 

実行結果

例えばシートが5枚ある場合

 
5

と表示されます。


Sheets と Worksheets の違い

ここで重要なポイントがあります。


Sheets

 
Sheets.Count

👉 すべてのシートをカウント

  • ワークシート

  • グラフシート


Worksheets

 
Worksheets.Count

👉 ワークシートのみカウント


使い分け

目的 使うもの
すべてのシート Sheets
通常のシートだけ Worksheets

実務でよく使う例

ループ処理

 
Sub LoopSheets()
    Dim i As Long
    For i = 1 To Sheets.Count
        Debug.Print Sheets(i).Name
    Next i
End Sub


注意点

非表示シートも含まれる

 
Sheets.Count

👉 非表示シートもカウントされます


まとめ

シート数を取得する基本はこれです。

 
Sheets.Count


一言まとめ

シート数を知りたいときは「Sheets.Count」でOK!

 

 

 

【Python Selenium】入力フォームに文字を入力する方法

Seleniumでは、入力フォームに文字を入力することができます。

例えば次のような操作です。

  • ログインフォーム

  • 検索フォーム

  • 問い合わせフォーム

この記事では 入力フォームに文字を入力する方法を解説します。


文字を入力する基本

入力には send_keys() を使います。

 


例:Google検索

 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# Chrome WebDriverのパスを指定
driver = webdriver.Chrome('./chromedriver')

# Googleにアクセス
driver.get('https://www.google.com')

# 検索ボックスを見つける
search_box = driver.find_element(By.NAME, 'q')

# キーワードを入力して検索
search_box.send_keys('abc')

 


Enterキーを押す

検索を実行する場合は Enterキーを送信できます。

先程の例の最後にEnterキーを送信を追加すると以下の様になります。

 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# Chrome WebDriverのパスを指定
driver = webdriver.Chrome('./chromedriver')

# Googleにアクセス
driver.get('https://www.google.com')

# 検索ボックスを見つける
search_box = driver.find_element(By.NAME, 'q')

# キーワードを入力して検索
search_box.send_keys('abc')

search_box.send_keys(Keys.RETURN)

 


入力内容をクリアする

既に入力されている文字を消す場合は clear() を使います。

 
textbox.clear()

 

その後入力できます。

 
textbox.send_keys("Python")

 


まとめ

Seleniumで入力フォームに文字を入力する基本コードは次の通りです。

 
textbox = driver.find_element(By.NAME, "q")

textbox.send_keys("Python")

 

send_keys() を使うことで、ブラウザ操作を自動化できます。

 

 

 

【Python Selenium】Webページのテキストを取得する方法

Seleniumでは、Webページに表示されている文字を取得することができます。

例えば次のような処理です。

  • 商品名の取得

  • 記事タイトルの取得

  • 価格の取得

この記事では Seleniumでテキストを取得する方法を解説します。


テキストを取得する基本方法

テキストは .text を使って取得します。

 
from selenium.webdriver.common.by import By

element = driver.find_element(By.ID, "title")

text = element.text

print(text)

 


 

HTML
<h1 id="title">Python Selenium Tutorial</h1>

 

取得結果

Python Selenium Tutorial

 


一行で書く方法

次のように書くこともできます。

 
title = driver.find_element(By.ID, "title").text

 

 
title = driver.find_element(By.ID, "title").text
 

複数のテキストを取得する

複数の要素がある場合は find_elements を使います。

 
elements = driver.find_elements(By.CLASS_NAME, "item")

for element in elements:
    print(element.text)

 

Apple
Orange
Banana

 


テキスト取得でよくある問題

テキストが取得できない場合は

  • 要素がまだ読み込まれていない

  • JavaScriptで動的に表示されている

可能性があります。

この場合は WebDriverWait を使うと解決できます。


まとめ

Seleniumでテキストを取得する基本は次の通りです。

 
text = driver.find_element(By.ID, "title").text

 

.text を使うことで、ページの情報を簡単に取得できます。